jseption 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +30 -6
  2. package/dist/atoms.d.ts +1 -0
  3. package/dist/atoms.js +2 -1
  4. package/dist/atoms.js.map +1 -1
  5. package/dist/builtins/base64.d.ts +14 -0
  6. package/dist/builtins/base64.js +219 -0
  7. package/dist/builtins/base64.js.map +1 -0
  8. package/dist/builtins/bigint.js +3 -3
  9. package/dist/builtins/bigint.js.map +1 -1
  10. package/dist/builtins/date.d.ts +1 -0
  11. package/dist/builtins/date.js +26 -12
  12. package/dist/builtins/date.js.map +1 -1
  13. package/dist/builtins/error.js +9 -0
  14. package/dist/builtins/error.js.map +1 -1
  15. package/dist/builtins/float16.d.ts +3 -0
  16. package/dist/builtins/float16.js +69 -0
  17. package/dist/builtins/float16.js.map +1 -0
  18. package/dist/builtins/function.js +2 -2
  19. package/dist/builtins/index.js +9 -6
  20. package/dist/builtins/index.js.map +1 -1
  21. package/dist/builtins/iterator.d.ts +2 -0
  22. package/dist/builtins/iterator.js +624 -0
  23. package/dist/builtins/iterator.js.map +1 -0
  24. package/dist/builtins/json.d.ts +13 -1
  25. package/dist/builtins/json.js +283 -211
  26. package/dist/builtins/json.js.map +1 -1
  27. package/dist/builtins/mapset.js +365 -6
  28. package/dist/builtins/mapset.js.map +1 -1
  29. package/dist/builtins/math.js +203 -3
  30. package/dist/builtins/math.js.map +1 -1
  31. package/dist/builtins/native.js +6 -6
  32. package/dist/builtins/object.js +9 -2
  33. package/dist/builtins/object.js.map +1 -1
  34. package/dist/builtins/promise.js +31 -11
  35. package/dist/builtins/promise.js.map +1 -1
  36. package/dist/builtins/proxy.js +2 -2
  37. package/dist/builtins/reflect.js +6 -2
  38. package/dist/builtins/reflect.js.map +1 -1
  39. package/dist/builtins/regexp.js +74 -3
  40. package/dist/builtins/regexp.js.map +1 -1
  41. package/dist/builtins/string.js +1 -1
  42. package/dist/builtins/symbol.js +1 -1
  43. package/dist/builtins/symbol.js.map +1 -1
  44. package/dist/builtins/typedarray.d.ts +4 -1
  45. package/dist/builtins/typedarray.js +325 -37
  46. package/dist/builtins/typedarray.js.map +1 -1
  47. package/dist/builtins/weakref.js +7 -7
  48. package/dist/embed.d.ts +5 -0
  49. package/dist/embed.js +36 -11
  50. package/dist/embed.js.map +1 -1
  51. package/dist/interpreter.js +15 -14
  52. package/dist/interpreter.js.map +1 -1
  53. package/dist/jit.d.ts +1 -0
  54. package/dist/jit.js +51 -13
  55. package/dist/jit.js.map +1 -1
  56. package/dist/jit_hook.d.ts +1 -0
  57. package/dist/jit_hook.js.map +1 -1
  58. package/dist/jit_runtime.d.ts +1 -1
  59. package/dist/jit_runtime.js +6 -6
  60. package/dist/jit_runtime.js.map +1 -1
  61. package/dist/jit_stack.d.ts +1 -0
  62. package/dist/jit_stack.js +2 -1
  63. package/dist/jit_stack.js.map +1 -1
  64. package/dist/jseption.d.ts +2 -0
  65. package/dist/jseption.js +1 -0
  66. package/dist/jseption.js.map +1 -1
  67. package/dist/membrane.d.ts +6 -0
  68. package/dist/membrane.js +7 -3
  69. package/dist/membrane.js.map +1 -1
  70. package/dist/module.js +5 -3
  71. package/dist/module.js.map +1 -1
  72. package/dist/parser.js +26 -9
  73. package/dist/parser.js.map +1 -1
  74. package/dist/print.d.ts +12 -0
  75. package/dist/print.js +494 -0
  76. package/dist/print.js.map +1 -0
  77. package/dist/qjs.js +13 -10
  78. package/dist/qjs.js.map +1 -1
  79. package/dist/quickjs.d.ts +8 -0
  80. package/dist/quickjs.js +132 -53
  81. package/dist/quickjs.js.map +1 -1
  82. package/dist/std.d.ts +4 -2
  83. package/dist/std.js +42 -8
  84. package/dist/std.js.map +1 -1
  85. package/dist/values.d.ts +31 -27
  86. package/dist/values.js.map +1 -1
  87. package/dist/version.d.ts +1 -1
  88. package/dist/version.js +1 -1
  89. package/dist/version.js.map +1 -1
  90. package/package.json +1 -1
package/README.md CHANGED
@@ -19,7 +19,7 @@ Guest code can only reach guest intrinsics: nothing it can name or traverse to l
19
19
  host object (`tests/sandbox.test.ts` and `tests/sandbox-audit.test.ts` check this,
20
20
  including through host-raised errors, iterators, proxies, `eval` and `Function`).
21
21
 
22
- The reference version is QuickJS 2025-04-26. Development uses [Bun](https://bun.sh) as
22
+ The reference version is QuickJS 2026-06-04. Development uses [Bun](https://bun.sh) as
23
23
  the package manager and test runner.
24
24
 
25
25
  ```sh
@@ -200,7 +200,9 @@ const data = fromGuest(ctx, value); // guest object graph -> plain ho
200
200
  ```
201
201
 
202
202
  Primitives cross unchanged. `toGuest` copies objects, arrays, Date, RegExp, Map, Set,
203
- typed arrays and Errors into guest equivalents, wraps host functions in guest functions
203
+ typed arrays and Errors into guest equivalents (a `SharedArrayBuffer`, or any buffer with
204
+ `{ liveBuffers: true }`, is handed over as the host memory itself, so a WebAssembly
205
+ module's memory can be read and written from the guest), wraps host functions in guest functions
204
206
  (host exceptions become guest errors, returned promises are bridged, guest promise jobs
205
207
  run when they settle) and preserves shared references and cycles. `fromGuest` does the
206
208
  reverse, turning guest functions into host functions that call into the guest. See
@@ -224,7 +226,8 @@ exposeLive(ctx, 'store', store, { writable: true, allow: (target, key) => key !=
224
226
  ```
225
227
 
226
228
  Primitives cross as values, host arrays as snapshot guest arrays, `Date`/`RegExp`/typed
227
- arrays/errors as copies, promises as guest promises; guest arguments are copied
229
+ arrays/errors as copies (shared memory, and any buffer under a `liveBuffers` policy, as
230
+ the memory itself), promises as guest promises; guest arguments are copied
228
231
  (`fromGuest`), a proxy passed back is unwrapped to its host object, and guest callbacks
229
232
  become host functions. The sandbox rules are always on: host intrinsics (`Function`,
230
233
  `eval`, `globalThis`, `Object`, `Reflect`, `Proxy`, the intrinsic prototypes, ...) never
@@ -296,7 +299,17 @@ Implemented: the complete ES2023 language (classes with private members and stat
296
299
  blocks, generators, async functions and async generators, destructuring, spread,
297
300
  optional chaining, template literals, labeled statements, `with`, direct and indirect
298
301
  `eval`, `new.target`, `super`, BigInt, ...), the QuickJS bytecode compiler with its
299
- peephole optimizations and short opcodes, and the standard library.
302
+ peephole optimizations and short opcodes, and the standard library, including the
303
+ QuickJS 2026-06-04 additions: the `Iterator` global with the iterator helpers (`map`,
304
+ `filter`, `take`, `drop`, `flatMap`, `reduce`, `toArray`, `forEach`, `some`, `every`,
305
+ `find`), `Iterator.from` and `Iterator.concat`; the `Set` methods (`union`,
306
+ `intersection`, `difference`, `symmetricDifference`, `isSubsetOf`, `isSupersetOf`,
307
+ `isDisjointFrom`); `Map`/`WeakMap` `getOrInsert` and `getOrInsertComputed`;
308
+ `Math.sumPrecise`, `Math.f16round`, `Float16Array`, `DataView.prototype.getFloat16` /
309
+ `setFloat16`, `Promise.try`, `Error.isError`, `RegExp.escape` and the `Uint8Array`
310
+ base64 / hex methods (`Uint8Array.fromBase64`, `fromHex`, `toBase64`, `toHex`,
311
+ `setFromBase64`, `setFromHex`). These are ported, so they give the same results on
312
+ every host.
300
313
 
301
314
  Differences from the C implementation:
302
315
 
@@ -307,7 +320,9 @@ Differences from the C implementation:
307
320
  * Hot builtins (`Array`, `String`, `Object`, `Math`, `Number`, `JSON`, `Map`, `Set`,
308
321
  `RegExp`, ...) forward to the host natives, so their error messages are the host's and
309
322
  `Math.random` is the host generator. Builtins that must follow QuickJS (`eval`,
310
- `Function`, `Error`, `Promise` and the job queue, `Date`, generators) stay ported.
323
+ `Function`, `Error`, `Promise` and the job queue, `Date`, generators) stay ported, and
324
+ so do the iterator helpers, the `Set` methods and `getOrInsert*` (they call guest code
325
+ in an order the specification fixes, and their results must be guest objects).
311
326
  * Compiled functions have no interpreter frame; see `docs/JIT.md` for how error locations
312
327
  are recovered.
313
328
 
@@ -322,7 +337,16 @@ Differences from the C implementation:
322
337
  * Memory management relies on the host garbage collector: there is no reference
323
338
  counting, `JS_FreeValue`/`JS_DupValue` are no-ops, and `WeakRef` / `FinalizationRegistry`
324
339
  use the host weak references.
325
- * `Atomics` and `SharedArrayBuffer` threads are not ported. `JS_WriteObject` /
340
+ * Guest typed arrays are host typed arrays, so `Float16Array` exists only when the host
341
+ has it (Bun, recent V8 and SpiderMonkey); `Math.f16round` and the `DataView` float16
342
+ methods are ported and always present. A NaN stored into a `Float16Array` element
343
+ gets the host's bit pattern; `DataView.prototype.setFloat16` writes QuickJS's 0x7c01.
344
+ * `RegExp.escape` follows QuickJS, which also escapes U+0000..U+001F and U+0080..U+00FF
345
+ as `\xNN` where the specification leaves most of them as they are (the result
346
+ matches the same text).
347
+ * `ArrayBuffer.prototype.transfer` with a length above `maxByteLength` throws a
348
+ `RangeError` as in the specification; QuickJS throws a `TypeError`.
349
+ * `Atomics` (including `Atomics.pause`) and `SharedArrayBuffer` threads are not ported. `JS_WriteObject` /
326
350
  `JS_ReadObject` serialize compiled scripts and modules only, not arbitrary values,
327
351
  in a jseption-specific format.
328
352
  * Number formatting and parsing use the host conversions (they are specified by
package/dist/atoms.d.ts CHANGED
@@ -177,6 +177,7 @@ export declare const JS_ATOM_Int32Array: number;
177
177
  export declare const JS_ATOM_Uint32Array: number;
178
178
  export declare const JS_ATOM_BigInt64Array: number;
179
179
  export declare const JS_ATOM_BigUint64Array: number;
180
+ export declare const JS_ATOM_Float16Array: number;
180
181
  export declare const JS_ATOM_Float32Array: number;
181
182
  export declare const JS_ATOM_Float64Array: number;
182
183
  export declare const JS_ATOM_DataView: number;
package/dist/atoms.js CHANGED
@@ -35,7 +35,7 @@ export const predefinedAtomNames = [
35
35
  'Math', 'JSON', 'Date', 'Function', 'GeneratorFunction', 'ForInIterator',
36
36
  'RegExp', 'ArrayBuffer', 'SharedArrayBuffer', 'Uint8ClampedArray',
37
37
  'Int8Array', 'Uint8Array', 'Int16Array', 'Uint16Array', 'Int32Array',
38
- 'Uint32Array', 'BigInt64Array', 'BigUint64Array', 'Float32Array',
38
+ 'Uint32Array', 'BigInt64Array', 'BigUint64Array', 'Float16Array', 'Float32Array',
39
39
  'Float64Array', 'DataView', 'BigInt', 'WeakRef', 'FinalizationRegistry',
40
40
  'Map', 'Set', 'WeakMap', 'WeakSet', 'Map Iterator', 'Set Iterator',
41
41
  'Array Iterator', 'String Iterator', 'RegExp String Iterator', 'Generator',
@@ -234,6 +234,7 @@ export const JS_ATOM_Int32Array = idx('Int32Array');
234
234
  export const JS_ATOM_Uint32Array = idx('Uint32Array');
235
235
  export const JS_ATOM_BigInt64Array = idx('BigInt64Array');
236
236
  export const JS_ATOM_BigUint64Array = idx('BigUint64Array');
237
+ export const JS_ATOM_Float16Array = idx('Float16Array');
237
238
  export const JS_ATOM_Float32Array = idx('Float32Array');
238
239
  export const JS_ATOM_Float64Array = idx('Float64Array');
239
240
  export const JS_ATOM_DataView = idx('DataView');
package/dist/atoms.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"atoms.js","sourceRoot":"","sources":["../src/atoms.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Atom table: port of the atom handling in quickjs.c / quickjs-atom.h\n *\n * Atoms are small integers. Atoms whose value has bit 31 set are\n * \"tagged integers\" (array indices) and are not stored in the table.\n */\n\nexport type JSAtom = number;\n\nexport const JS_ATOM_NULL: JSAtom = 0;\n\n/* same order as quickjs-atom.h: the first entries are the keywords and\n must match the TOK_xxx token order (see parser.ts) */\nexport const predefinedAtomNames: string[] = [\n 'null', 'false', 'true', 'if', 'else', 'return', 'var', 'this', 'delete',\n 'void', 'typeof', 'new', 'in', 'instanceof', 'do', 'while', 'for', 'break',\n 'continue', 'switch', 'case', 'default', 'throw', 'try', 'catch', 'finally',\n 'function', 'debugger', 'with', 'class', 'const', 'enum', 'export',\n 'extends', 'import', 'super', 'implements', 'interface', 'let', 'package',\n 'private', 'protected', 'public', 'static', 'yield', 'await',\n '', 'length', 'fileName', 'lineNumber', 'columnNumber', 'message', 'cause',\n 'errors', 'stack', 'name', 'toString', 'toLocaleString', 'valueOf', 'eval',\n 'prototype', 'constructor', 'configurable', 'writable', 'enumerable',\n 'value', 'get', 'set', 'of', '__proto__', 'undefined', 'number', 'boolean',\n 'string', 'object', 'symbol', 'integer', 'unknown', 'arguments', 'callee',\n 'caller', '<eval>', '<ret>', '<var>', '<arg_var>', '<with>', 'lastIndex',\n 'target', 'index', 'input', 'defineProperties', 'apply', 'join', 'concat',\n 'split', 'construct', 'getPrototypeOf', 'setPrototypeOf', 'isExtensible',\n 'preventExtensions', 'has', 'deleteProperty', 'defineProperty',\n 'getOwnPropertyDescriptor', 'ownKeys', 'add', 'done', 'next', 'values',\n 'source', 'flags', 'global', 'unicode', 'raw', 'new.target',\n 'this.active_func', '<home_object>', '<computed_field>',\n '<static_computed_field>', '<class_fields_init>', '<brand>', '#constructor',\n 'as', 'from', 'meta', '*default*', '*', 'Module', 'then', 'resolve',\n 'reject', 'promise', 'proxy', 'revoke', 'async', 'exec', 'groups',\n 'indices', 'status', 'reason', 'globalThis', 'bigint', '-0', 'Infinity',\n '-Infinity', 'NaN', 'not-equal', 'timed-out', 'ok', 'toJSON', 'Object',\n 'Array', 'Error', 'Number', 'String', 'Boolean', 'Symbol', 'Arguments',\n 'Math', 'JSON', 'Date', 'Function', 'GeneratorFunction', 'ForInIterator',\n 'RegExp', 'ArrayBuffer', 'SharedArrayBuffer', 'Uint8ClampedArray',\n 'Int8Array', 'Uint8Array', 'Int16Array', 'Uint16Array', 'Int32Array',\n 'Uint32Array', 'BigInt64Array', 'BigUint64Array', 'Float32Array',\n 'Float64Array', 'DataView', 'BigInt', 'WeakRef', 'FinalizationRegistry',\n 'Map', 'Set', 'WeakMap', 'WeakSet', 'Map Iterator', 'Set Iterator',\n 'Array Iterator', 'String Iterator', 'RegExp String Iterator', 'Generator',\n 'Proxy', 'Promise', 'PromiseResolveFunction', 'PromiseRejectFunction',\n 'AsyncFunction', 'AsyncFunctionResolve', 'AsyncFunctionReject',\n 'AsyncGeneratorFunction', 'AsyncGenerator', 'EvalError', 'RangeError',\n 'ReferenceError', 'SyntaxError', 'TypeError', 'URIError', 'InternalError',\n /* private brand */\n '<brand>',\n /* well known symbols */\n 'Symbol.toPrimitive', 'Symbol.iterator', 'Symbol.match', 'Symbol.matchAll',\n 'Symbol.replace', 'Symbol.search', 'Symbol.split', 'Symbol.toStringTag',\n 'Symbol.isConcatSpreadable', 'Symbol.hasInstance', 'Symbol.species',\n 'Symbol.unscopables', 'Symbol.asyncIterator',\n];\n\nfunction idx(name: string, from = 0): number {\n const i = predefinedAtomNames.indexOf(name, from);\n if (i < 0) throw new Error('missing predefined atom ' + name);\n return i + 1;\n}\n\n/* JS_ATOM_xxx constants (1-based, JS_ATOM_NULL = 0) */\nexport const JS_ATOM_null = 1;\nexport const JS_ATOM_false = idx('false');\nexport const JS_ATOM_true = idx('true');\nexport const JS_ATOM_if = idx('if');\nexport const JS_ATOM_else = idx('else');\nexport const JS_ATOM_return = idx('return');\nexport const JS_ATOM_var = idx('var');\nexport const JS_ATOM_this = idx('this');\nexport const JS_ATOM_delete = idx('delete');\nexport const JS_ATOM_void = idx('void');\nexport const JS_ATOM_typeof = idx('typeof');\nexport const JS_ATOM_new = idx('new');\nexport const JS_ATOM_in = idx('in');\nexport const JS_ATOM_instanceof = idx('instanceof');\nexport const JS_ATOM_do = idx('do');\nexport const JS_ATOM_while = idx('while');\nexport const JS_ATOM_for = idx('for');\nexport const JS_ATOM_break = idx('break');\nexport const JS_ATOM_continue = idx('continue');\nexport const JS_ATOM_switch = idx('switch');\nexport const JS_ATOM_case = idx('case');\nexport const JS_ATOM_default = idx('default');\nexport const JS_ATOM_throw = idx('throw');\nexport const JS_ATOM_try = idx('try');\nexport const JS_ATOM_catch = idx('catch');\nexport const JS_ATOM_finally = idx('finally');\nexport const JS_ATOM_function = idx('function');\nexport const JS_ATOM_debugger = idx('debugger');\nexport const JS_ATOM_with = idx('with');\nexport const JS_ATOM_class = idx('class');\nexport const JS_ATOM_const = idx('const');\nexport const JS_ATOM_enum = idx('enum');\nexport const JS_ATOM_export = idx('export');\nexport const JS_ATOM_extends = idx('extends');\nexport const JS_ATOM_import = idx('import');\nexport const JS_ATOM_super = idx('super');\nexport const JS_ATOM_implements = idx('implements');\nexport const JS_ATOM_interface = idx('interface');\nexport const JS_ATOM_let = idx('let');\nexport const JS_ATOM_package = idx('package');\nexport const JS_ATOM_private = idx('private');\nexport const JS_ATOM_protected = idx('protected');\nexport const JS_ATOM_public = idx('public');\nexport const JS_ATOM_static = idx('static');\nexport const JS_ATOM_yield = idx('yield');\nexport const JS_ATOM_await = idx('await');\nexport const JS_ATOM_empty_string = idx('');\nexport const JS_ATOM_length = idx('length');\nexport const JS_ATOM_fileName = idx('fileName');\nexport const JS_ATOM_lineNumber = idx('lineNumber');\nexport const JS_ATOM_columnNumber = idx('columnNumber');\nexport const JS_ATOM_message = idx('message');\nexport const JS_ATOM_cause = idx('cause');\nexport const JS_ATOM_errors = idx('errors');\nexport const JS_ATOM_stack = idx('stack');\nexport const JS_ATOM_name = idx('name');\nexport const JS_ATOM_toString = idx('toString');\nexport const JS_ATOM_toLocaleString = idx('toLocaleString');\nexport const JS_ATOM_valueOf = idx('valueOf');\nexport const JS_ATOM_eval = idx('eval');\nexport const JS_ATOM_prototype = idx('prototype');\nexport const JS_ATOM_constructor = idx('constructor');\nexport const JS_ATOM_configurable = idx('configurable');\nexport const JS_ATOM_writable = idx('writable');\nexport const JS_ATOM_enumerable = idx('enumerable');\nexport const JS_ATOM_value = idx('value');\nexport const JS_ATOM_get = idx('get');\nexport const JS_ATOM_set = idx('set');\nexport const JS_ATOM_of = idx('of');\nexport const JS_ATOM___proto__ = idx('__proto__');\nexport const JS_ATOM_undefined = idx('undefined');\nexport const JS_ATOM_number = idx('number');\nexport const JS_ATOM_boolean = idx('boolean');\nexport const JS_ATOM_string = idx('string');\nexport const JS_ATOM_object = idx('object');\nexport const JS_ATOM_symbol = idx('symbol');\nexport const JS_ATOM_integer = idx('integer');\nexport const JS_ATOM_unknown = idx('unknown');\nexport const JS_ATOM_arguments = idx('arguments');\nexport const JS_ATOM_callee = idx('callee');\nexport const JS_ATOM_caller = idx('caller');\nexport const JS_ATOM__eval_ = idx('<eval>');\nexport const JS_ATOM__ret_ = idx('<ret>');\nexport const JS_ATOM__var_ = idx('<var>');\nexport const JS_ATOM__arg_var_ = idx('<arg_var>');\nexport const JS_ATOM__with_ = idx('<with>');\nexport const JS_ATOM_lastIndex = idx('lastIndex');\nexport const JS_ATOM_target = idx('target');\nexport const JS_ATOM_index = idx('index');\nexport const JS_ATOM_input = idx('input');\nexport const JS_ATOM_defineProperties = idx('defineProperties');\nexport const JS_ATOM_apply = idx('apply');\nexport const JS_ATOM_join = idx('join');\nexport const JS_ATOM_concat = idx('concat');\nexport const JS_ATOM_split = idx('split');\nexport const JS_ATOM_construct = idx('construct');\nexport const JS_ATOM_getPrototypeOf = idx('getPrototypeOf');\nexport const JS_ATOM_setPrototypeOf = idx('setPrototypeOf');\nexport const JS_ATOM_isExtensible = idx('isExtensible');\nexport const JS_ATOM_preventExtensions = idx('preventExtensions');\nexport const JS_ATOM_has = idx('has');\nexport const JS_ATOM_deleteProperty = idx('deleteProperty');\nexport const JS_ATOM_defineProperty = idx('defineProperty');\nexport const JS_ATOM_getOwnPropertyDescriptor = idx('getOwnPropertyDescriptor');\nexport const JS_ATOM_ownKeys = idx('ownKeys');\nexport const JS_ATOM_add = idx('add');\nexport const JS_ATOM_done = idx('done');\nexport const JS_ATOM_next = idx('next');\nexport const JS_ATOM_values = idx('values');\nexport const JS_ATOM_source = idx('source');\nexport const JS_ATOM_flags = idx('flags');\nexport const JS_ATOM_global = idx('global');\nexport const JS_ATOM_unicode = idx('unicode');\nexport const JS_ATOM_raw = idx('raw');\nexport const JS_ATOM_new_target = idx('new.target');\nexport const JS_ATOM_this_active_func = idx('this.active_func');\nexport const JS_ATOM_home_object = idx('<home_object>');\nexport const JS_ATOM_computed_field = idx('<computed_field>');\nexport const JS_ATOM_static_computed_field = idx('<static_computed_field>');\nexport const JS_ATOM_class_fields_init = idx('<class_fields_init>');\nexport const JS_ATOM_brand = idx('<brand>');\nexport const JS_ATOM_hash_constructor = idx('#constructor');\nexport const JS_ATOM_as = idx('as');\nexport const JS_ATOM_from = idx('from');\nexport const JS_ATOM_meta = idx('meta');\nexport const JS_ATOM__default_ = idx('*default*');\nexport const JS_ATOM__star_ = idx('*');\nexport const JS_ATOM_Module = idx('Module');\nexport const JS_ATOM_then = idx('then');\nexport const JS_ATOM_resolve = idx('resolve');\nexport const JS_ATOM_reject = idx('reject');\nexport const JS_ATOM_promise = idx('promise');\nexport const JS_ATOM_proxy = idx('proxy');\nexport const JS_ATOM_revoke = idx('revoke');\nexport const JS_ATOM_async = idx('async');\nexport const JS_ATOM_exec = idx('exec');\nexport const JS_ATOM_groups = idx('groups');\nexport const JS_ATOM_indices = idx('indices');\nexport const JS_ATOM_status = idx('status');\nexport const JS_ATOM_reason = idx('reason');\nexport const JS_ATOM_globalThis = idx('globalThis');\nexport const JS_ATOM_bigint = idx('bigint');\nexport const JS_ATOM_minus_zero = idx('-0');\nexport const JS_ATOM_Infinity = idx('Infinity');\nexport const JS_ATOM_minus_Infinity = idx('-Infinity');\nexport const JS_ATOM_NaN = idx('NaN');\nexport const JS_ATOM_not_equal = idx('not-equal');\nexport const JS_ATOM_timed_out = idx('timed-out');\nexport const JS_ATOM_ok = idx('ok');\nexport const JS_ATOM_toJSON = idx('toJSON');\nexport const JS_ATOM_Object = idx('Object');\nexport const JS_ATOM_Array = idx('Array');\nexport const JS_ATOM_Error = idx('Error');\nexport const JS_ATOM_Number = idx('Number');\nexport const JS_ATOM_String = idx('String');\nexport const JS_ATOM_Boolean = idx('Boolean');\nexport const JS_ATOM_Symbol = idx('Symbol');\nexport const JS_ATOM_Arguments = idx('Arguments');\nexport const JS_ATOM_Math = idx('Math');\nexport const JS_ATOM_JSON = idx('JSON');\nexport const JS_ATOM_Date = idx('Date');\nexport const JS_ATOM_Function = idx('Function');\nexport const JS_ATOM_GeneratorFunction = idx('GeneratorFunction');\nexport const JS_ATOM_ForInIterator = idx('ForInIterator');\nexport const JS_ATOM_RegExp = idx('RegExp');\nexport const JS_ATOM_ArrayBuffer = idx('ArrayBuffer');\nexport const JS_ATOM_SharedArrayBuffer = idx('SharedArrayBuffer');\nexport const JS_ATOM_Uint8ClampedArray = idx('Uint8ClampedArray');\nexport const JS_ATOM_Int8Array = idx('Int8Array');\nexport const JS_ATOM_Uint8Array = idx('Uint8Array');\nexport const JS_ATOM_Int16Array = idx('Int16Array');\nexport const JS_ATOM_Uint16Array = idx('Uint16Array');\nexport const JS_ATOM_Int32Array = idx('Int32Array');\nexport const JS_ATOM_Uint32Array = idx('Uint32Array');\nexport const JS_ATOM_BigInt64Array = idx('BigInt64Array');\nexport const JS_ATOM_BigUint64Array = idx('BigUint64Array');\nexport const JS_ATOM_Float32Array = idx('Float32Array');\nexport const JS_ATOM_Float64Array = idx('Float64Array');\nexport const JS_ATOM_DataView = idx('DataView');\nexport const JS_ATOM_BigInt = idx('BigInt');\nexport const JS_ATOM_WeakRef = idx('WeakRef');\nexport const JS_ATOM_FinalizationRegistry = idx('FinalizationRegistry');\nexport const JS_ATOM_Map = idx('Map');\nexport const JS_ATOM_Set = idx('Set');\nexport const JS_ATOM_WeakMap = idx('WeakMap');\nexport const JS_ATOM_WeakSet = idx('WeakSet');\nexport const JS_ATOM_Map_Iterator = idx('Map Iterator');\nexport const JS_ATOM_Set_Iterator = idx('Set Iterator');\nexport const JS_ATOM_Array_Iterator = idx('Array Iterator');\nexport const JS_ATOM_String_Iterator = idx('String Iterator');\nexport const JS_ATOM_RegExp_String_Iterator = idx('RegExp String Iterator');\nexport const JS_ATOM_Generator = idx('Generator');\nexport const JS_ATOM_Proxy = idx('Proxy');\nexport const JS_ATOM_Promise = idx('Promise');\nexport const JS_ATOM_PromiseResolveFunction = idx('PromiseResolveFunction');\nexport const JS_ATOM_PromiseRejectFunction = idx('PromiseRejectFunction');\nexport const JS_ATOM_AsyncFunction = idx('AsyncFunction');\nexport const JS_ATOM_AsyncFunctionResolve = idx('AsyncFunctionResolve');\nexport const JS_ATOM_AsyncFunctionReject = idx('AsyncFunctionReject');\nexport const JS_ATOM_AsyncGeneratorFunction = idx('AsyncGeneratorFunction');\nexport const JS_ATOM_AsyncGenerator = idx('AsyncGenerator');\nexport const JS_ATOM_EvalError = idx('EvalError');\nexport const JS_ATOM_RangeError = idx('RangeError');\nexport const JS_ATOM_ReferenceError = idx('ReferenceError');\nexport const JS_ATOM_SyntaxError = idx('SyntaxError');\nexport const JS_ATOM_TypeError = idx('TypeError');\nexport const JS_ATOM_URIError = idx('URIError');\nexport const JS_ATOM_InternalError = idx('InternalError');\nexport const JS_ATOM_Private_brand = idx('<brand>', JS_ATOM_brand);\nexport const JS_ATOM_Symbol_toPrimitive = idx('Symbol.toPrimitive');\nexport const JS_ATOM_Symbol_iterator = idx('Symbol.iterator');\nexport const JS_ATOM_Symbol_match = idx('Symbol.match');\nexport const JS_ATOM_Symbol_matchAll = idx('Symbol.matchAll');\nexport const JS_ATOM_Symbol_replace = idx('Symbol.replace');\nexport const JS_ATOM_Symbol_search = idx('Symbol.search');\nexport const JS_ATOM_Symbol_split = idx('Symbol.split');\nexport const JS_ATOM_Symbol_toStringTag = idx('Symbol.toStringTag');\nexport const JS_ATOM_Symbol_isConcatSpreadable = idx('Symbol.isConcatSpreadable');\nexport const JS_ATOM_Symbol_hasInstance = idx('Symbol.hasInstance');\nexport const JS_ATOM_Symbol_species = idx('Symbol.species');\nexport const JS_ATOM_Symbol_unscopables = idx('Symbol.unscopables');\nexport const JS_ATOM_Symbol_asyncIterator = idx('Symbol.asyncIterator');\nexport const JS_ATOM_END = predefinedAtomNames.length + 1;\n\n/* atom types */\nexport const JS_ATOM_TYPE_STRING = 1;\nexport const JS_ATOM_TYPE_GLOBAL_SYMBOL = 2;\nexport const JS_ATOM_TYPE_SYMBOL = 3;\nexport const JS_ATOM_TYPE_PRIVATE = 4;\n\nexport const JS_ATOM_TAG_INT = 0x80000000;\nexport const JS_ATOM_MAX_INT = 0x7fffffff;\n\nexport function __JS_AtomIsTaggedInt(v: JSAtom): boolean {\n return v >= JS_ATOM_TAG_INT;\n}\nexport function __JS_AtomFromUInt32(v: number): JSAtom {\n return v + JS_ATOM_TAG_INT;\n}\nexport function __JS_AtomToUInt32(atom: JSAtom): number {\n return atom - JS_ATOM_TAG_INT;\n}\n\n/* A symbol value. Each symbol has its own atom (not interned by name\n unless it is a global symbol created with Symbol.for()). */\n/* Symbol atoms are host symbols. The well-known symbols are the host's own\n (they are shared between realms by the specification); other symbol atoms\n are fresh host symbols created by Symbol(description). */\nexport function js_well_known_symbol(name: string): symbol | null {\n if (!name.startsWith('Symbol.')) return null;\n const s = (Symbol as any)[name.slice(7)];\n return typeof s === 'symbol' ? s : null;\n}\n\n/* returns -1 if the string is not a canonical array index */\nexport function is_num_string(str: string): number {\n const len = str.length;\n if (len === 0 || len > 10) return -1;\n const c0 = str.charCodeAt(0);\n if (c0 < 48 || c0 > 57) return -1;\n if (c0 === 48) return len === 1 ? 0 : -1;\n let n = 0;\n for (let i = 0; i < len; i++) {\n const c = str.charCodeAt(i);\n if (c < 48 || c > 57) return -1;\n n = n * 10 + (c - 48);\n }\n if (n > JS_ATOM_MAX_INT) return -1;\n return n;\n}\n\nexport class AtomTable {\n /* index: atom - 1 */\n private names: (string | symbol)[] = [];\n private types: number[] = [];\n private strMap = new Map<string, JSAtom>();\n private symMap = new Map<symbol, JSAtom>();\n\n constructor() {\n for (let i = 0; i < predefinedAtomNames.length; i++) {\n const name = predefinedAtomNames[i];\n const atom = i + 1;\n let type: number;\n if (atom === JS_ATOM_Private_brand) type = JS_ATOM_TYPE_PRIVATE;\n else if (atom >= JS_ATOM_Symbol_toPrimitive) type = JS_ATOM_TYPE_SYMBOL;\n else type = JS_ATOM_TYPE_STRING;\n if (type === JS_ATOM_TYPE_STRING) {\n this.names.push(name);\n this.strMap.set(name, atom);\n } else {\n const sym = js_well_known_symbol(name) ?? Symbol(name);\n this.names.push(sym);\n this.symMap.set(sym, atom);\n }\n this.types.push(type);\n }\n }\n\n /* string atom. If the string is a canonical array index, returns a\n tagged int atom. */\n newAtomStr(str: string): JSAtom {\n const n = is_num_string(str);\n if (n >= 0) return __JS_AtomFromUInt32(n);\n let atom = this.strMap.get(str);\n if (atom === undefined) {\n atom = this.names.length + 1;\n this.names.push(str);\n this.types.push(JS_ATOM_TYPE_STRING);\n this.strMap.set(str, atom);\n }\n return atom;\n }\n\n newAtomUInt32(n: number): JSAtom {\n if (n <= JS_ATOM_MAX_INT) return __JS_AtomFromUInt32(n);\n return this.newAtomStr(String(n));\n }\n\n /* create a new (unique) symbol atom */\n newSymbol(description: string | undefined, atom_type: number): symbol {\n /* registered symbols are shared with the host registry (Symbol.keyFor) */\n const sym = (atom_type === JS_ATOM_TYPE_GLOBAL_SYMBOL) ? Symbol.for(description ?? '') : Symbol(description);\n const existing = this.symMap.get(sym);\n if (existing !== undefined) return sym;\n const atom = this.names.length + 1;\n this.names.push(sym);\n this.types.push(atom_type);\n this.symMap.set(sym, atom);\n return sym;\n }\n\n /* atom of an existing host symbol (registered on first use) */\n symbolToAtom(sym: symbol): JSAtom {\n let atom = this.symMap.get(sym);\n if (atom === undefined) {\n atom = this.names.length + 1;\n this.names.push(sym);\n this.types.push(Symbol.keyFor(sym) !== undefined ? JS_ATOM_TYPE_GLOBAL_SYMBOL : JS_ATOM_TYPE_SYMBOL);\n this.symMap.set(sym, atom);\n }\n return atom;\n }\n\n getType(atom: JSAtom): number {\n if (__JS_AtomIsTaggedInt(atom)) return JS_ATOM_TYPE_STRING;\n return this.types[atom - 1];\n }\n\n isString(atom: JSAtom): boolean {\n return this.getType(atom) === JS_ATOM_TYPE_STRING;\n }\n\n isSymbol(atom: JSAtom): boolean {\n return !__JS_AtomIsTaggedInt(atom) && this.types[atom - 1] !== JS_ATOM_TYPE_STRING;\n }\n\n getSymbol(atom: JSAtom): symbol {\n return this.names[atom - 1] as symbol;\n }\n\n /* host property key of an atom: number (array index), string or symbol */\n toKey(atom: JSAtom): string | number | symbol {\n if (__JS_AtomIsTaggedInt(atom)) return __JS_AtomToUInt32(atom);\n return this.names[atom - 1];\n }\n\n /* string of a string atom or the description of a symbol */\n toStr(atom: JSAtom): string {\n if (__JS_AtomIsTaggedInt(atom)) return String(__JS_AtomToUInt32(atom));\n const v = this.names[atom - 1];\n if (typeof v === 'string') return v;\n return v.description === undefined ? '' : v.description;\n }\n\n /* for error messages: \"Symbol(desc)\" */\n toDisplayStr(atom: JSAtom): string {\n if (!__JS_AtomIsTaggedInt(atom) && (atom <= 0 || atom > this.names.length)) return `<bad atom ${atom}>`;\n if (this.isSymbol(atom)) {\n const sym = this.getSymbol(atom);\n return 'Symbol(' + (sym.description ?? '') + ')';\n }\n return this.toStr(atom);\n }\n}\n"]}
1
+ {"version":3,"file":"atoms.js","sourceRoot":"","sources":["../src/atoms.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Atom table: port of the atom handling in quickjs.c / quickjs-atom.h\n *\n * Atoms are small integers. Atoms whose value has bit 31 set are\n * \"tagged integers\" (array indices) and are not stored in the table.\n */\n\nexport type JSAtom = number;\n\nexport const JS_ATOM_NULL: JSAtom = 0;\n\n/* same order as quickjs-atom.h: the first entries are the keywords and\n must match the TOK_xxx token order (see parser.ts) */\nexport const predefinedAtomNames: string[] = [\n 'null', 'false', 'true', 'if', 'else', 'return', 'var', 'this', 'delete',\n 'void', 'typeof', 'new', 'in', 'instanceof', 'do', 'while', 'for', 'break',\n 'continue', 'switch', 'case', 'default', 'throw', 'try', 'catch', 'finally',\n 'function', 'debugger', 'with', 'class', 'const', 'enum', 'export',\n 'extends', 'import', 'super', 'implements', 'interface', 'let', 'package',\n 'private', 'protected', 'public', 'static', 'yield', 'await',\n '', 'length', 'fileName', 'lineNumber', 'columnNumber', 'message', 'cause',\n 'errors', 'stack', 'name', 'toString', 'toLocaleString', 'valueOf', 'eval',\n 'prototype', 'constructor', 'configurable', 'writable', 'enumerable',\n 'value', 'get', 'set', 'of', '__proto__', 'undefined', 'number', 'boolean',\n 'string', 'object', 'symbol', 'integer', 'unknown', 'arguments', 'callee',\n 'caller', '<eval>', '<ret>', '<var>', '<arg_var>', '<with>', 'lastIndex',\n 'target', 'index', 'input', 'defineProperties', 'apply', 'join', 'concat',\n 'split', 'construct', 'getPrototypeOf', 'setPrototypeOf', 'isExtensible',\n 'preventExtensions', 'has', 'deleteProperty', 'defineProperty',\n 'getOwnPropertyDescriptor', 'ownKeys', 'add', 'done', 'next', 'values',\n 'source', 'flags', 'global', 'unicode', 'raw', 'new.target',\n 'this.active_func', '<home_object>', '<computed_field>',\n '<static_computed_field>', '<class_fields_init>', '<brand>', '#constructor',\n 'as', 'from', 'meta', '*default*', '*', 'Module', 'then', 'resolve',\n 'reject', 'promise', 'proxy', 'revoke', 'async', 'exec', 'groups',\n 'indices', 'status', 'reason', 'globalThis', 'bigint', '-0', 'Infinity',\n '-Infinity', 'NaN', 'not-equal', 'timed-out', 'ok', 'toJSON', 'Object',\n 'Array', 'Error', 'Number', 'String', 'Boolean', 'Symbol', 'Arguments',\n 'Math', 'JSON', 'Date', 'Function', 'GeneratorFunction', 'ForInIterator',\n 'RegExp', 'ArrayBuffer', 'SharedArrayBuffer', 'Uint8ClampedArray',\n 'Int8Array', 'Uint8Array', 'Int16Array', 'Uint16Array', 'Int32Array',\n 'Uint32Array', 'BigInt64Array', 'BigUint64Array', 'Float16Array', 'Float32Array',\n 'Float64Array', 'DataView', 'BigInt', 'WeakRef', 'FinalizationRegistry',\n 'Map', 'Set', 'WeakMap', 'WeakSet', 'Map Iterator', 'Set Iterator',\n 'Array Iterator', 'String Iterator', 'RegExp String Iterator', 'Generator',\n 'Proxy', 'Promise', 'PromiseResolveFunction', 'PromiseRejectFunction',\n 'AsyncFunction', 'AsyncFunctionResolve', 'AsyncFunctionReject',\n 'AsyncGeneratorFunction', 'AsyncGenerator', 'EvalError', 'RangeError',\n 'ReferenceError', 'SyntaxError', 'TypeError', 'URIError', 'InternalError',\n /* private brand */\n '<brand>',\n /* well known symbols */\n 'Symbol.toPrimitive', 'Symbol.iterator', 'Symbol.match', 'Symbol.matchAll',\n 'Symbol.replace', 'Symbol.search', 'Symbol.split', 'Symbol.toStringTag',\n 'Symbol.isConcatSpreadable', 'Symbol.hasInstance', 'Symbol.species',\n 'Symbol.unscopables', 'Symbol.asyncIterator',\n];\n\nfunction idx(name: string, from = 0): number {\n const i = predefinedAtomNames.indexOf(name, from);\n if (i < 0) throw new Error('missing predefined atom ' + name);\n return i + 1;\n}\n\n/* JS_ATOM_xxx constants (1-based, JS_ATOM_NULL = 0) */\nexport const JS_ATOM_null = 1;\nexport const JS_ATOM_false = idx('false');\nexport const JS_ATOM_true = idx('true');\nexport const JS_ATOM_if = idx('if');\nexport const JS_ATOM_else = idx('else');\nexport const JS_ATOM_return = idx('return');\nexport const JS_ATOM_var = idx('var');\nexport const JS_ATOM_this = idx('this');\nexport const JS_ATOM_delete = idx('delete');\nexport const JS_ATOM_void = idx('void');\nexport const JS_ATOM_typeof = idx('typeof');\nexport const JS_ATOM_new = idx('new');\nexport const JS_ATOM_in = idx('in');\nexport const JS_ATOM_instanceof = idx('instanceof');\nexport const JS_ATOM_do = idx('do');\nexport const JS_ATOM_while = idx('while');\nexport const JS_ATOM_for = idx('for');\nexport const JS_ATOM_break = idx('break');\nexport const JS_ATOM_continue = idx('continue');\nexport const JS_ATOM_switch = idx('switch');\nexport const JS_ATOM_case = idx('case');\nexport const JS_ATOM_default = idx('default');\nexport const JS_ATOM_throw = idx('throw');\nexport const JS_ATOM_try = idx('try');\nexport const JS_ATOM_catch = idx('catch');\nexport const JS_ATOM_finally = idx('finally');\nexport const JS_ATOM_function = idx('function');\nexport const JS_ATOM_debugger = idx('debugger');\nexport const JS_ATOM_with = idx('with');\nexport const JS_ATOM_class = idx('class');\nexport const JS_ATOM_const = idx('const');\nexport const JS_ATOM_enum = idx('enum');\nexport const JS_ATOM_export = idx('export');\nexport const JS_ATOM_extends = idx('extends');\nexport const JS_ATOM_import = idx('import');\nexport const JS_ATOM_super = idx('super');\nexport const JS_ATOM_implements = idx('implements');\nexport const JS_ATOM_interface = idx('interface');\nexport const JS_ATOM_let = idx('let');\nexport const JS_ATOM_package = idx('package');\nexport const JS_ATOM_private = idx('private');\nexport const JS_ATOM_protected = idx('protected');\nexport const JS_ATOM_public = idx('public');\nexport const JS_ATOM_static = idx('static');\nexport const JS_ATOM_yield = idx('yield');\nexport const JS_ATOM_await = idx('await');\nexport const JS_ATOM_empty_string = idx('');\nexport const JS_ATOM_length = idx('length');\nexport const JS_ATOM_fileName = idx('fileName');\nexport const JS_ATOM_lineNumber = idx('lineNumber');\nexport const JS_ATOM_columnNumber = idx('columnNumber');\nexport const JS_ATOM_message = idx('message');\nexport const JS_ATOM_cause = idx('cause');\nexport const JS_ATOM_errors = idx('errors');\nexport const JS_ATOM_stack = idx('stack');\nexport const JS_ATOM_name = idx('name');\nexport const JS_ATOM_toString = idx('toString');\nexport const JS_ATOM_toLocaleString = idx('toLocaleString');\nexport const JS_ATOM_valueOf = idx('valueOf');\nexport const JS_ATOM_eval = idx('eval');\nexport const JS_ATOM_prototype = idx('prototype');\nexport const JS_ATOM_constructor = idx('constructor');\nexport const JS_ATOM_configurable = idx('configurable');\nexport const JS_ATOM_writable = idx('writable');\nexport const JS_ATOM_enumerable = idx('enumerable');\nexport const JS_ATOM_value = idx('value');\nexport const JS_ATOM_get = idx('get');\nexport const JS_ATOM_set = idx('set');\nexport const JS_ATOM_of = idx('of');\nexport const JS_ATOM___proto__ = idx('__proto__');\nexport const JS_ATOM_undefined = idx('undefined');\nexport const JS_ATOM_number = idx('number');\nexport const JS_ATOM_boolean = idx('boolean');\nexport const JS_ATOM_string = idx('string');\nexport const JS_ATOM_object = idx('object');\nexport const JS_ATOM_symbol = idx('symbol');\nexport const JS_ATOM_integer = idx('integer');\nexport const JS_ATOM_unknown = idx('unknown');\nexport const JS_ATOM_arguments = idx('arguments');\nexport const JS_ATOM_callee = idx('callee');\nexport const JS_ATOM_caller = idx('caller');\nexport const JS_ATOM__eval_ = idx('<eval>');\nexport const JS_ATOM__ret_ = idx('<ret>');\nexport const JS_ATOM__var_ = idx('<var>');\nexport const JS_ATOM__arg_var_ = idx('<arg_var>');\nexport const JS_ATOM__with_ = idx('<with>');\nexport const JS_ATOM_lastIndex = idx('lastIndex');\nexport const JS_ATOM_target = idx('target');\nexport const JS_ATOM_index = idx('index');\nexport const JS_ATOM_input = idx('input');\nexport const JS_ATOM_defineProperties = idx('defineProperties');\nexport const JS_ATOM_apply = idx('apply');\nexport const JS_ATOM_join = idx('join');\nexport const JS_ATOM_concat = idx('concat');\nexport const JS_ATOM_split = idx('split');\nexport const JS_ATOM_construct = idx('construct');\nexport const JS_ATOM_getPrototypeOf = idx('getPrototypeOf');\nexport const JS_ATOM_setPrototypeOf = idx('setPrototypeOf');\nexport const JS_ATOM_isExtensible = idx('isExtensible');\nexport const JS_ATOM_preventExtensions = idx('preventExtensions');\nexport const JS_ATOM_has = idx('has');\nexport const JS_ATOM_deleteProperty = idx('deleteProperty');\nexport const JS_ATOM_defineProperty = idx('defineProperty');\nexport const JS_ATOM_getOwnPropertyDescriptor = idx('getOwnPropertyDescriptor');\nexport const JS_ATOM_ownKeys = idx('ownKeys');\nexport const JS_ATOM_add = idx('add');\nexport const JS_ATOM_done = idx('done');\nexport const JS_ATOM_next = idx('next');\nexport const JS_ATOM_values = idx('values');\nexport const JS_ATOM_source = idx('source');\nexport const JS_ATOM_flags = idx('flags');\nexport const JS_ATOM_global = idx('global');\nexport const JS_ATOM_unicode = idx('unicode');\nexport const JS_ATOM_raw = idx('raw');\nexport const JS_ATOM_new_target = idx('new.target');\nexport const JS_ATOM_this_active_func = idx('this.active_func');\nexport const JS_ATOM_home_object = idx('<home_object>');\nexport const JS_ATOM_computed_field = idx('<computed_field>');\nexport const JS_ATOM_static_computed_field = idx('<static_computed_field>');\nexport const JS_ATOM_class_fields_init = idx('<class_fields_init>');\nexport const JS_ATOM_brand = idx('<brand>');\nexport const JS_ATOM_hash_constructor = idx('#constructor');\nexport const JS_ATOM_as = idx('as');\nexport const JS_ATOM_from = idx('from');\nexport const JS_ATOM_meta = idx('meta');\nexport const JS_ATOM__default_ = idx('*default*');\nexport const JS_ATOM__star_ = idx('*');\nexport const JS_ATOM_Module = idx('Module');\nexport const JS_ATOM_then = idx('then');\nexport const JS_ATOM_resolve = idx('resolve');\nexport const JS_ATOM_reject = idx('reject');\nexport const JS_ATOM_promise = idx('promise');\nexport const JS_ATOM_proxy = idx('proxy');\nexport const JS_ATOM_revoke = idx('revoke');\nexport const JS_ATOM_async = idx('async');\nexport const JS_ATOM_exec = idx('exec');\nexport const JS_ATOM_groups = idx('groups');\nexport const JS_ATOM_indices = idx('indices');\nexport const JS_ATOM_status = idx('status');\nexport const JS_ATOM_reason = idx('reason');\nexport const JS_ATOM_globalThis = idx('globalThis');\nexport const JS_ATOM_bigint = idx('bigint');\nexport const JS_ATOM_minus_zero = idx('-0');\nexport const JS_ATOM_Infinity = idx('Infinity');\nexport const JS_ATOM_minus_Infinity = idx('-Infinity');\nexport const JS_ATOM_NaN = idx('NaN');\nexport const JS_ATOM_not_equal = idx('not-equal');\nexport const JS_ATOM_timed_out = idx('timed-out');\nexport const JS_ATOM_ok = idx('ok');\nexport const JS_ATOM_toJSON = idx('toJSON');\nexport const JS_ATOM_Object = idx('Object');\nexport const JS_ATOM_Array = idx('Array');\nexport const JS_ATOM_Error = idx('Error');\nexport const JS_ATOM_Number = idx('Number');\nexport const JS_ATOM_String = idx('String');\nexport const JS_ATOM_Boolean = idx('Boolean');\nexport const JS_ATOM_Symbol = idx('Symbol');\nexport const JS_ATOM_Arguments = idx('Arguments');\nexport const JS_ATOM_Math = idx('Math');\nexport const JS_ATOM_JSON = idx('JSON');\nexport const JS_ATOM_Date = idx('Date');\nexport const JS_ATOM_Function = idx('Function');\nexport const JS_ATOM_GeneratorFunction = idx('GeneratorFunction');\nexport const JS_ATOM_ForInIterator = idx('ForInIterator');\nexport const JS_ATOM_RegExp = idx('RegExp');\nexport const JS_ATOM_ArrayBuffer = idx('ArrayBuffer');\nexport const JS_ATOM_SharedArrayBuffer = idx('SharedArrayBuffer');\nexport const JS_ATOM_Uint8ClampedArray = idx('Uint8ClampedArray');\nexport const JS_ATOM_Int8Array = idx('Int8Array');\nexport const JS_ATOM_Uint8Array = idx('Uint8Array');\nexport const JS_ATOM_Int16Array = idx('Int16Array');\nexport const JS_ATOM_Uint16Array = idx('Uint16Array');\nexport const JS_ATOM_Int32Array = idx('Int32Array');\nexport const JS_ATOM_Uint32Array = idx('Uint32Array');\nexport const JS_ATOM_BigInt64Array = idx('BigInt64Array');\nexport const JS_ATOM_BigUint64Array = idx('BigUint64Array');\nexport const JS_ATOM_Float16Array = idx('Float16Array');\nexport const JS_ATOM_Float32Array = idx('Float32Array');\nexport const JS_ATOM_Float64Array = idx('Float64Array');\nexport const JS_ATOM_DataView = idx('DataView');\nexport const JS_ATOM_BigInt = idx('BigInt');\nexport const JS_ATOM_WeakRef = idx('WeakRef');\nexport const JS_ATOM_FinalizationRegistry = idx('FinalizationRegistry');\nexport const JS_ATOM_Map = idx('Map');\nexport const JS_ATOM_Set = idx('Set');\nexport const JS_ATOM_WeakMap = idx('WeakMap');\nexport const JS_ATOM_WeakSet = idx('WeakSet');\nexport const JS_ATOM_Map_Iterator = idx('Map Iterator');\nexport const JS_ATOM_Set_Iterator = idx('Set Iterator');\nexport const JS_ATOM_Array_Iterator = idx('Array Iterator');\nexport const JS_ATOM_String_Iterator = idx('String Iterator');\nexport const JS_ATOM_RegExp_String_Iterator = idx('RegExp String Iterator');\nexport const JS_ATOM_Generator = idx('Generator');\nexport const JS_ATOM_Proxy = idx('Proxy');\nexport const JS_ATOM_Promise = idx('Promise');\nexport const JS_ATOM_PromiseResolveFunction = idx('PromiseResolveFunction');\nexport const JS_ATOM_PromiseRejectFunction = idx('PromiseRejectFunction');\nexport const JS_ATOM_AsyncFunction = idx('AsyncFunction');\nexport const JS_ATOM_AsyncFunctionResolve = idx('AsyncFunctionResolve');\nexport const JS_ATOM_AsyncFunctionReject = idx('AsyncFunctionReject');\nexport const JS_ATOM_AsyncGeneratorFunction = idx('AsyncGeneratorFunction');\nexport const JS_ATOM_AsyncGenerator = idx('AsyncGenerator');\nexport const JS_ATOM_EvalError = idx('EvalError');\nexport const JS_ATOM_RangeError = idx('RangeError');\nexport const JS_ATOM_ReferenceError = idx('ReferenceError');\nexport const JS_ATOM_SyntaxError = idx('SyntaxError');\nexport const JS_ATOM_TypeError = idx('TypeError');\nexport const JS_ATOM_URIError = idx('URIError');\nexport const JS_ATOM_InternalError = idx('InternalError');\nexport const JS_ATOM_Private_brand = idx('<brand>', JS_ATOM_brand);\nexport const JS_ATOM_Symbol_toPrimitive = idx('Symbol.toPrimitive');\nexport const JS_ATOM_Symbol_iterator = idx('Symbol.iterator');\nexport const JS_ATOM_Symbol_match = idx('Symbol.match');\nexport const JS_ATOM_Symbol_matchAll = idx('Symbol.matchAll');\nexport const JS_ATOM_Symbol_replace = idx('Symbol.replace');\nexport const JS_ATOM_Symbol_search = idx('Symbol.search');\nexport const JS_ATOM_Symbol_split = idx('Symbol.split');\nexport const JS_ATOM_Symbol_toStringTag = idx('Symbol.toStringTag');\nexport const JS_ATOM_Symbol_isConcatSpreadable = idx('Symbol.isConcatSpreadable');\nexport const JS_ATOM_Symbol_hasInstance = idx('Symbol.hasInstance');\nexport const JS_ATOM_Symbol_species = idx('Symbol.species');\nexport const JS_ATOM_Symbol_unscopables = idx('Symbol.unscopables');\nexport const JS_ATOM_Symbol_asyncIterator = idx('Symbol.asyncIterator');\nexport const JS_ATOM_END = predefinedAtomNames.length + 1;\n\n/* atom types */\nexport const JS_ATOM_TYPE_STRING = 1;\nexport const JS_ATOM_TYPE_GLOBAL_SYMBOL = 2;\nexport const JS_ATOM_TYPE_SYMBOL = 3;\nexport const JS_ATOM_TYPE_PRIVATE = 4;\n\nexport const JS_ATOM_TAG_INT = 0x80000000;\nexport const JS_ATOM_MAX_INT = 0x7fffffff;\n\nexport function __JS_AtomIsTaggedInt(v: JSAtom): boolean {\n return v >= JS_ATOM_TAG_INT;\n}\nexport function __JS_AtomFromUInt32(v: number): JSAtom {\n return v + JS_ATOM_TAG_INT;\n}\nexport function __JS_AtomToUInt32(atom: JSAtom): number {\n return atom - JS_ATOM_TAG_INT;\n}\n\n/* A symbol value. Each symbol has its own atom (not interned by name\n unless it is a global symbol created with Symbol.for()). */\n/* Symbol atoms are host symbols. The well-known symbols are the host's own\n (they are shared between realms by the specification); other symbol atoms\n are fresh host symbols created by Symbol(description). */\nexport function js_well_known_symbol(name: string): symbol | null {\n if (!name.startsWith('Symbol.')) return null;\n const s = (Symbol as any)[name.slice(7)];\n return typeof s === 'symbol' ? s : null;\n}\n\n/* returns -1 if the string is not a canonical array index */\nexport function is_num_string(str: string): number {\n const len = str.length;\n if (len === 0 || len > 10) return -1;\n const c0 = str.charCodeAt(0);\n if (c0 < 48 || c0 > 57) return -1;\n if (c0 === 48) return len === 1 ? 0 : -1;\n let n = 0;\n for (let i = 0; i < len; i++) {\n const c = str.charCodeAt(i);\n if (c < 48 || c > 57) return -1;\n n = n * 10 + (c - 48);\n }\n if (n > JS_ATOM_MAX_INT) return -1;\n return n;\n}\n\nexport class AtomTable {\n /* index: atom - 1 */\n private names: (string | symbol)[] = [];\n private types: number[] = [];\n private strMap = new Map<string, JSAtom>();\n private symMap = new Map<symbol, JSAtom>();\n\n constructor() {\n for (let i = 0; i < predefinedAtomNames.length; i++) {\n const name = predefinedAtomNames[i];\n const atom = i + 1;\n let type: number;\n if (atom === JS_ATOM_Private_brand) type = JS_ATOM_TYPE_PRIVATE;\n else if (atom >= JS_ATOM_Symbol_toPrimitive) type = JS_ATOM_TYPE_SYMBOL;\n else type = JS_ATOM_TYPE_STRING;\n if (type === JS_ATOM_TYPE_STRING) {\n this.names.push(name);\n this.strMap.set(name, atom);\n } else {\n const sym = js_well_known_symbol(name) ?? Symbol(name);\n this.names.push(sym);\n this.symMap.set(sym, atom);\n }\n this.types.push(type);\n }\n }\n\n /* string atom. If the string is a canonical array index, returns a\n tagged int atom. */\n newAtomStr(str: string): JSAtom {\n const n = is_num_string(str);\n if (n >= 0) return __JS_AtomFromUInt32(n);\n let atom = this.strMap.get(str);\n if (atom === undefined) {\n atom = this.names.length + 1;\n this.names.push(str);\n this.types.push(JS_ATOM_TYPE_STRING);\n this.strMap.set(str, atom);\n }\n return atom;\n }\n\n newAtomUInt32(n: number): JSAtom {\n if (n <= JS_ATOM_MAX_INT) return __JS_AtomFromUInt32(n);\n return this.newAtomStr(String(n));\n }\n\n /* create a new (unique) symbol atom */\n newSymbol(description: string | undefined, atom_type: number): symbol {\n /* registered symbols are shared with the host registry (Symbol.keyFor) */\n const sym = (atom_type === JS_ATOM_TYPE_GLOBAL_SYMBOL) ? Symbol.for(description ?? '') : Symbol(description);\n const existing = this.symMap.get(sym);\n if (existing !== undefined) return sym;\n const atom = this.names.length + 1;\n this.names.push(sym);\n this.types.push(atom_type);\n this.symMap.set(sym, atom);\n return sym;\n }\n\n /* atom of an existing host symbol (registered on first use) */\n symbolToAtom(sym: symbol): JSAtom {\n let atom = this.symMap.get(sym);\n if (atom === undefined) {\n atom = this.names.length + 1;\n this.names.push(sym);\n this.types.push(Symbol.keyFor(sym) !== undefined ? JS_ATOM_TYPE_GLOBAL_SYMBOL : JS_ATOM_TYPE_SYMBOL);\n this.symMap.set(sym, atom);\n }\n return atom;\n }\n\n getType(atom: JSAtom): number {\n if (__JS_AtomIsTaggedInt(atom)) return JS_ATOM_TYPE_STRING;\n return this.types[atom - 1];\n }\n\n isString(atom: JSAtom): boolean {\n return this.getType(atom) === JS_ATOM_TYPE_STRING;\n }\n\n isSymbol(atom: JSAtom): boolean {\n return !__JS_AtomIsTaggedInt(atom) && this.types[atom - 1] !== JS_ATOM_TYPE_STRING;\n }\n\n getSymbol(atom: JSAtom): symbol {\n return this.names[atom - 1] as symbol;\n }\n\n /* host property key of an atom: number (array index), string or symbol */\n toKey(atom: JSAtom): string | number | symbol {\n if (__JS_AtomIsTaggedInt(atom)) return __JS_AtomToUInt32(atom);\n return this.names[atom - 1];\n }\n\n /* string of a string atom or the description of a symbol */\n toStr(atom: JSAtom): string {\n if (__JS_AtomIsTaggedInt(atom)) return String(__JS_AtomToUInt32(atom));\n const v = this.names[atom - 1];\n if (typeof v === 'string') return v;\n return v.description === undefined ? '' : v.description;\n }\n\n /* for error messages: \"Symbol(desc)\" */\n toDisplayStr(atom: JSAtom): string {\n if (!__JS_AtomIsTaggedInt(atom) && (atom <= 0 || atom > this.names.length)) return `<bad atom ${atom}>`;\n if (this.isSymbol(atom)) {\n const sym = this.getSymbol(atom);\n return 'Symbol(' + (sym.description ?? '') + ')';\n }\n return this.toStr(atom);\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ export declare const B64_ALPHABET_BASE64 = 0;
2
+ export declare const B64_ALPHABET_BASE64URL = 1;
3
+ export declare const B64_LAST_LOOSE = 0;
4
+ export declare const B64_LAST_STRICT = 1;
5
+ export declare const B64_LAST_STOP_BEFORE_PARTIAL = 2;
6
+ export declare function b64_encode(src: Uint8Array, alphabet: number, omit_padding: boolean): string;
7
+ export interface DecodeResult {
8
+ read: number;
9
+ written: number;
10
+ err: boolean;
11
+ }
12
+ export declare function from_base64(src: string, dst: Uint8Array, max_len: number, alphabet: number, last_chunk: number): DecodeResult;
13
+ export declare function u8a_hex_encode(src: Uint8Array): string;
14
+ export declare function u8a_hex_decode(src: string, dst: Uint8Array, max_len: number): DecodeResult;
@@ -0,0 +1,219 @@
1
+ /*
2
+ * Base64 and hexadecimal encoding for Uint8Array (tc39
3
+ * proposal-arraybuffer-base64), port of the helpers in quickjs.c
4
+ * 2026-06-04: b64_encode, from_base64, u8a_hex_encode, u8a_hex_decode.
5
+ *
6
+ * The C version decodes the UTF-8 form of the input string, where every
7
+ * non-ASCII character is made of bytes >= 0x80, which the tables reject.
8
+ * Here the input is the JS string itself: a code unit >= 0x80 is rejected
9
+ * the same way, and positions are counted in code units (they only ever
10
+ * cover the ASCII prefix that was consumed, where both counts agree).
11
+ */
12
+ export const B64_ALPHABET_BASE64 = 0;
13
+ export const B64_ALPHABET_BASE64URL = 1;
14
+ export const B64_LAST_LOOSE = 0;
15
+ export const B64_LAST_STRICT = 1;
16
+ export const B64_LAST_STOP_BEFORE_PARTIAL = 2;
17
+ const B64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
18
+ const b64_enc = B64_CHARS + '+/';
19
+ const b64url_enc = B64_CHARS + '-_';
20
+ const K_WS = 64;
21
+ const K_ER = 65;
22
+ function make_dec_table(alpha) {
23
+ const t = new Uint8Array(128).fill(K_ER);
24
+ for (const c of [9, 10, 12, 13, 32])
25
+ t[c] = K_WS; /* ASCII white space, as in b64_dec */
26
+ for (let i = 0; i < 64; i++)
27
+ t[alpha.charCodeAt(i)] = i;
28
+ return t;
29
+ }
30
+ const b64_dec = make_dec_table(b64_enc);
31
+ const b64url_dec = make_dec_table(b64url_enc);
32
+ /* the decoding table entry of the code unit at 'i' (K_ER for non-ASCII) */
33
+ function dec(table, src, i) {
34
+ const c = src.charCodeAt(i);
35
+ return c < 128 ? table[c] : K_ER;
36
+ }
37
+ export function b64_encode(src, alphabet, omit_padding) {
38
+ const alpha = alphabet === B64_ALPHABET_BASE64URL ? b64url_enc : b64_enc;
39
+ const len = src.length;
40
+ const parts = [];
41
+ let out = '';
42
+ let i = 0;
43
+ for (; i + 3 <= len; i += 3) {
44
+ const v = 65536 * src[i] + 256 * src[i + 1] + src[i + 2];
45
+ out += alpha[(v >> 18) & 63] + alpha[(v >> 12) & 63] + alpha[(v >> 6) & 63] + alpha[v & 63];
46
+ if (out.length >= 8192) {
47
+ parts.push(out);
48
+ out = '';
49
+ }
50
+ }
51
+ const rem = len - i;
52
+ if (rem === 1) {
53
+ const v = 65536 * src[i];
54
+ out += alpha[(v >> 18) & 63] + alpha[(v >> 12) & 63] + '==';
55
+ }
56
+ else if (rem === 2) {
57
+ const v = 65536 * src[i] + 256 * src[i + 1];
58
+ out += alpha[(v >> 18) & 63] + alpha[(v >> 12) & 63] + alpha[(v >> 6) & 63] + '=';
59
+ }
60
+ parts.push(out);
61
+ let s = parts.join('');
62
+ if (omit_padding) {
63
+ let n = s.length;
64
+ while (n > 0 && s.charCodeAt(n - 1) === 0x3d /* = */)
65
+ n--;
66
+ s = s.slice(0, n);
67
+ }
68
+ return s;
69
+ }
70
+ function b64_skip_ws(src, index, table) {
71
+ while (index < src.length && dec(table, src, index) === K_WS)
72
+ index++;
73
+ return index;
74
+ }
75
+ /* The FromBase64 abstract operation: decode 'src' into dst[0, max_len) */
76
+ export function from_base64(src, dst, max_len, alphabet, last_chunk) {
77
+ const table = alphabet === B64_ALPHABET_BASE64URL ? b64url_dec : b64_dec;
78
+ const src_len = src.length;
79
+ let read = 0, written = 0;
80
+ let acc = 0;
81
+ let seen = 0;
82
+ let index = 0;
83
+ const fail = { read: 0, written: 0, err: true };
84
+ if (max_len === 0)
85
+ return { read: 0, written: 0, err: false };
86
+ for (;;) {
87
+ if (seen === 0) {
88
+ /* fast path: decode complete groups of 4 valid characters */
89
+ while (index + 4 <= src_len && written + 3 <= max_len) {
90
+ const v0 = dec(table, src, index), v1 = dec(table, src, index + 1);
91
+ const v2 = dec(table, src, index + 2), v3 = dec(table, src, index + 3);
92
+ if ((v0 | v1 | v2 | v3) >= 64)
93
+ break;
94
+ const v = (v0 << 18) | (v1 << 12) | (v2 << 6) | v3;
95
+ dst[written] = v >> 16;
96
+ dst[written + 1] = v >> 8;
97
+ dst[written + 2] = v;
98
+ written += 3;
99
+ index += 4;
100
+ }
101
+ read = index;
102
+ if (written >= max_len)
103
+ return { read, written, err: false };
104
+ }
105
+ /* slow path: white space, padding, partial groups, capacity */
106
+ index = b64_skip_ws(src, index, table);
107
+ if (index === src_len) {
108
+ if (seen > 0) {
109
+ if (last_chunk === B64_LAST_STOP_BEFORE_PARTIAL)
110
+ return { read, written, err: false };
111
+ if (last_chunk === B64_LAST_STRICT)
112
+ return fail;
113
+ /* loose */
114
+ if (seen === 1)
115
+ return fail;
116
+ break;
117
+ }
118
+ return { read: src_len, written, err: false };
119
+ }
120
+ const ch = src.charCodeAt(index++);
121
+ if (ch === 0x3d /* = */) {
122
+ if (seen < 2)
123
+ return fail;
124
+ index = b64_skip_ws(src, index, table);
125
+ if (seen === 2) {
126
+ if (index === src_len) {
127
+ if (last_chunk === B64_LAST_STOP_BEFORE_PARTIAL)
128
+ return { read, written, err: false };
129
+ return fail;
130
+ }
131
+ if (src.charCodeAt(index) === 0x3d) {
132
+ index++;
133
+ index = b64_skip_ws(src, index, table);
134
+ }
135
+ else {
136
+ return fail;
137
+ }
138
+ }
139
+ /* after padding, only white space is allowed */
140
+ if (index !== src_len)
141
+ return fail;
142
+ if (last_chunk === B64_LAST_STRICT) {
143
+ const mask = (seen === 2) ? 0xf : 0x3;
144
+ if (acc & mask)
145
+ return fail;
146
+ }
147
+ break;
148
+ }
149
+ const v = ch < 128 ? table[ch] : K_ER;
150
+ if (v >= 64)
151
+ return fail;
152
+ /* check the remaining capacity before committing to this group */
153
+ const remaining = max_len - written;
154
+ if ((remaining === 1 && seen === 2) || (remaining === 2 && seen === 3))
155
+ return { read, written, err: false };
156
+ acc = (acc << 6) | v;
157
+ seen++;
158
+ if (seen === 4) {
159
+ dst[written] = acc >> 16;
160
+ dst[written + 1] = acc >> 8;
161
+ dst[written + 2] = acc;
162
+ written += 3;
163
+ acc = 0;
164
+ seen = 0;
165
+ read = index;
166
+ if (written >= max_len)
167
+ return { read, written, err: false };
168
+ }
169
+ }
170
+ if (seen === 2) {
171
+ dst[written++] = acc >> 4;
172
+ }
173
+ else if (seen === 3) {
174
+ dst[written] = acc >> 10;
175
+ dst[written + 1] = acc >> 2;
176
+ written += 2;
177
+ }
178
+ return { read: src_len, written, err: false };
179
+ }
180
+ const hex_digits = '0123456789abcdef';
181
+ export function u8a_hex_encode(src) {
182
+ const parts = [];
183
+ let out = '';
184
+ for (let i = 0; i < src.length; i++) {
185
+ out += hex_digits[src[i] >> 4] + hex_digits[src[i] & 0xf];
186
+ if (out.length >= 8192) {
187
+ parts.push(out);
188
+ out = '';
189
+ }
190
+ }
191
+ parts.push(out);
192
+ return parts.join('');
193
+ }
194
+ function from_hex(c) {
195
+ if (c >= 0x30 && c <= 0x39)
196
+ return c - 0x30;
197
+ if (c >= 0x41 && c <= 0x46)
198
+ return c - 0x41 + 10;
199
+ if (c >= 0x61 && c <= 0x66)
200
+ return c - 0x61 + 10;
201
+ return -1;
202
+ }
203
+ /* decode a hex string into dst[0, max_len) */
204
+ export function u8a_hex_decode(src, dst, max_len) {
205
+ const src_len = src.length;
206
+ let written = 0, i = 0;
207
+ if (src_len & 1)
208
+ return { read: 0, written: 0, err: true };
209
+ while (i < src_len && written < max_len) {
210
+ const hi = from_hex(src.charCodeAt(i));
211
+ const lo = from_hex(src.charCodeAt(i + 1));
212
+ if (hi < 0 || lo < 0)
213
+ return { read: 0, written: 0, err: true };
214
+ dst[written++] = (hi << 4) | lo;
215
+ i += 2;
216
+ }
217
+ return { read: i, written, err: false };
218
+ }
219
+ //# sourceMappingURL=base64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/builtins/base64.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Base64 and hexadecimal encoding for Uint8Array (tc39\n * proposal-arraybuffer-base64), port of the helpers in quickjs.c\n * 2026-06-04: b64_encode, from_base64, u8a_hex_encode, u8a_hex_decode.\n *\n * The C version decodes the UTF-8 form of the input string, where every\n * non-ASCII character is made of bytes >= 0x80, which the tables reject.\n * Here the input is the JS string itself: a code unit >= 0x80 is rejected\n * the same way, and positions are counted in code units (they only ever\n * cover the ASCII prefix that was consumed, where both counts agree).\n */\n\nexport const B64_ALPHABET_BASE64 = 0;\nexport const B64_ALPHABET_BASE64URL = 1;\n\nexport const B64_LAST_LOOSE = 0;\nexport const B64_LAST_STRICT = 1;\nexport const B64_LAST_STOP_BEFORE_PARTIAL = 2;\n\nconst B64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\nconst b64_enc = B64_CHARS + '+/';\nconst b64url_enc = B64_CHARS + '-_';\n\nconst K_WS = 64;\nconst K_ER = 65;\n\nfunction make_dec_table(alpha: string): Uint8Array {\n const t = new Uint8Array(128).fill(K_ER);\n for (const c of [9, 10, 12, 13, 32]) t[c] = K_WS; /* ASCII white space, as in b64_dec */\n for (let i = 0; i < 64; i++) t[alpha.charCodeAt(i)] = i;\n return t;\n}\nconst b64_dec = make_dec_table(b64_enc);\nconst b64url_dec = make_dec_table(b64url_enc);\n\n/* the decoding table entry of the code unit at 'i' (K_ER for non-ASCII) */\nfunction dec(table: Uint8Array, src: string, i: number): number {\n const c = src.charCodeAt(i);\n return c < 128 ? table[c] : K_ER;\n}\n\nexport function b64_encode(src: Uint8Array, alphabet: number, omit_padding: boolean): string {\n const alpha = alphabet === B64_ALPHABET_BASE64URL ? b64url_enc : b64_enc;\n const len = src.length;\n const parts: string[] = [];\n let out = '';\n let i = 0;\n for (; i + 3 <= len; i += 3) {\n const v = 65536 * src[i] + 256 * src[i + 1] + src[i + 2];\n out += alpha[(v >> 18) & 63] + alpha[(v >> 12) & 63] + alpha[(v >> 6) & 63] + alpha[v & 63];\n if (out.length >= 8192) { parts.push(out); out = ''; }\n }\n const rem = len - i;\n if (rem === 1) {\n const v = 65536 * src[i];\n out += alpha[(v >> 18) & 63] + alpha[(v >> 12) & 63] + '==';\n } else if (rem === 2) {\n const v = 65536 * src[i] + 256 * src[i + 1];\n out += alpha[(v >> 18) & 63] + alpha[(v >> 12) & 63] + alpha[(v >> 6) & 63] + '=';\n }\n parts.push(out);\n let s = parts.join('');\n if (omit_padding) {\n let n = s.length;\n while (n > 0 && s.charCodeAt(n - 1) === 0x3d /* = */) n--;\n s = s.slice(0, n);\n }\n return s;\n}\n\nfunction b64_skip_ws(src: string, index: number, table: Uint8Array): number {\n while (index < src.length && dec(table, src, index) === K_WS) index++;\n return index;\n}\n\nexport interface DecodeResult { read: number; written: number; err: boolean }\n\n/* The FromBase64 abstract operation: decode 'src' into dst[0, max_len) */\nexport function from_base64(src: string, dst: Uint8Array, max_len: number, alphabet: number,\n last_chunk: number): DecodeResult {\n const table = alphabet === B64_ALPHABET_BASE64URL ? b64url_dec : b64_dec;\n const src_len = src.length;\n let read = 0, written = 0;\n let acc = 0;\n let seen = 0;\n let index = 0;\n const fail: DecodeResult = { read: 0, written: 0, err: true };\n\n if (max_len === 0) return { read: 0, written: 0, err: false };\n\n for (;;) {\n if (seen === 0) {\n /* fast path: decode complete groups of 4 valid characters */\n while (index + 4 <= src_len && written + 3 <= max_len) {\n const v0 = dec(table, src, index), v1 = dec(table, src, index + 1);\n const v2 = dec(table, src, index + 2), v3 = dec(table, src, index + 3);\n if ((v0 | v1 | v2 | v3) >= 64) break;\n const v = (v0 << 18) | (v1 << 12) | (v2 << 6) | v3;\n dst[written] = v >> 16;\n dst[written + 1] = v >> 8;\n dst[written + 2] = v;\n written += 3;\n index += 4;\n }\n read = index;\n if (written >= max_len) return { read, written, err: false };\n }\n\n /* slow path: white space, padding, partial groups, capacity */\n index = b64_skip_ws(src, index, table);\n\n if (index === src_len) {\n if (seen > 0) {\n if (last_chunk === B64_LAST_STOP_BEFORE_PARTIAL) return { read, written, err: false };\n if (last_chunk === B64_LAST_STRICT) return fail;\n /* loose */\n if (seen === 1) return fail;\n break;\n }\n return { read: src_len, written, err: false };\n }\n\n const ch = src.charCodeAt(index++);\n\n if (ch === 0x3d /* = */) {\n if (seen < 2) return fail;\n index = b64_skip_ws(src, index, table);\n if (seen === 2) {\n if (index === src_len) {\n if (last_chunk === B64_LAST_STOP_BEFORE_PARTIAL) return { read, written, err: false };\n return fail;\n }\n if (src.charCodeAt(index) === 0x3d) {\n index++;\n index = b64_skip_ws(src, index, table);\n } else {\n return fail;\n }\n }\n /* after padding, only white space is allowed */\n if (index !== src_len) return fail;\n if (last_chunk === B64_LAST_STRICT) {\n const mask = (seen === 2) ? 0xf : 0x3;\n if (acc & mask) return fail;\n }\n break;\n }\n\n const v = ch < 128 ? table[ch] : K_ER;\n if (v >= 64) return fail;\n\n /* check the remaining capacity before committing to this group */\n const remaining = max_len - written;\n if ((remaining === 1 && seen === 2) || (remaining === 2 && seen === 3)) return { read, written, err: false };\n\n acc = (acc << 6) | v;\n seen++;\n\n if (seen === 4) {\n dst[written] = acc >> 16;\n dst[written + 1] = acc >> 8;\n dst[written + 2] = acc;\n written += 3;\n acc = 0;\n seen = 0;\n read = index;\n if (written >= max_len) return { read, written, err: false };\n }\n }\n\n if (seen === 2) {\n dst[written++] = acc >> 4;\n } else if (seen === 3) {\n dst[written] = acc >> 10;\n dst[written + 1] = acc >> 2;\n written += 2;\n }\n return { read: src_len, written, err: false };\n}\n\nconst hex_digits = '0123456789abcdef';\n\nexport function u8a_hex_encode(src: Uint8Array): string {\n const parts: string[] = [];\n let out = '';\n for (let i = 0; i < src.length; i++) {\n out += hex_digits[src[i] >> 4] + hex_digits[src[i] & 0xf];\n if (out.length >= 8192) { parts.push(out); out = ''; }\n }\n parts.push(out);\n return parts.join('');\n}\n\nfunction from_hex(c: number): number {\n if (c >= 0x30 && c <= 0x39) return c - 0x30;\n if (c >= 0x41 && c <= 0x46) return c - 0x41 + 10;\n if (c >= 0x61 && c <= 0x66) return c - 0x61 + 10;\n return -1;\n}\n\n/* decode a hex string into dst[0, max_len) */\nexport function u8a_hex_decode(src: string, dst: Uint8Array, max_len: number): DecodeResult {\n const src_len = src.length;\n let written = 0, i = 0;\n if (src_len & 1) return { read: 0, written: 0, err: true };\n while (i < src_len && written < max_len) {\n const hi = from_hex(src.charCodeAt(i));\n const lo = from_hex(src.charCodeAt(i + 1));\n if (hi < 0 || lo < 0) return { read: 0, written: 0, err: true };\n dst[written++] = (hi << 4) | lo;\n i += 2;\n }\n return { read: i, written, err: false };\n}\n"]}
@@ -48,13 +48,13 @@ function JS_ToBigIntCtorFree(ctx, val) {
48
48
  }
49
49
  function js_bigint_constructor(ctx, new_target, argv) {
50
50
  if (!JS_IsUndefined(new_target))
51
- return JS_ThrowTypeError(ctx, 'not a constructor');
51
+ return Q.JS_ThrowTypeErrorNotAConstructor(ctx, new_target);
52
52
  return JS_ToBigIntCtorFree(ctx, argv[0]);
53
53
  }
54
54
  function js_thisBigIntValue(ctx, this_val) {
55
55
  if (typeof this_val === 'bigint')
56
56
  return this_val;
57
- if (Q.JS_IsObject(this_val) && Q.JS_GetClassID(this_val) === 33 /* JSClassID.BIG_INT */) {
57
+ if (Q.JS_IsObject(this_val) && Q.JS_GetClassID(this_val) === 34 /* JSClassID.BIG_INT */) {
58
58
  if (typeof Q.JS_GetAnyOpaque(this_val) === 'bigint')
59
59
  return Q.JS_GetAnyOpaque(this_val);
60
60
  }
@@ -114,7 +114,7 @@ const js_bigint_proto_funcs = [
114
114
  ];
115
115
  export function JS_AddIntrinsicBigInt(ctx) {
116
116
  const proto = JS_NewObject(ctx);
117
- ctx.class_proto[33 /* JSClassID.BIG_INT */] = proto;
117
+ ctx.class_proto[34 /* JSClassID.BIG_INT */] = proto;
118
118
  JS_SetPropertyFunctionList(ctx, proto, js_bigint_proto_funcs);
119
119
  const obj1 = JS_NewGlobalCConstructor(ctx, 'BigInt', js_bigint_constructor, 1, proto);
120
120
  JS_SetPropertyFunctionList(ctx, obj1, js_bigint_funcs);