-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsystemBase.js
87 lines (76 loc) · 1.2 KB
/
systemBase.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
var builtins = enum {
builtinStr,
builtinObj,
builtinArray,
builtinNum,
builtinBool,
builtinDate,
builtinFcn,
builtinDoc,
builtinDocId,
builtinKey,
builtinCatalog,
builtinDb,
builtinStore,
builtinIndex,
builtinCursor,
builtinIter,
builtinTxn
};
var _values = enum {
vt_undef = 0,
vt_bool,
vt_int,
vt_dbl,
vt_date,
vt_infinite,
vt_number,
vt_string,
vt_nan,
vt_null,
vt_file,
vt_status,
vt_control,
vt_closure,
vt_endlist,
vt_document,
vt_docId,
vt_txnId, // 64 bit immediate
vt_lval,
vt_centi,
vt_array,
vt_object,
vt_binary,
vt_function,
vt_symbol,
vt_uuid, // 16 byte string
vt_md5,
vt_propfcn,
vt_propval,
vt_weakref,
vt_hndl,
vt_key,
vt_MAX
};
function Object() {
var ans;
if(this)
ans = this;
else
ans = {};
if (arguments.length > 0)
ans.setValue(arguments[0]);
return ans;
}
jsdb_installProps(Object, builtins.builtinObj, _values.vt_object);
Object.assign = function() {
var target, names, values;
if (arguments.length < 1)
return {};
target = arguments[0];
if (typeof target == "object")
for (var i = 1; i < arguments.length; i++)
for (var key in arguments[i])
target[key] = arguments[i][key];
return target;
};