jseption 0.0.4 → 0.0.6
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.
- package/README.md +56 -4
- package/dist/atoms.d.ts +1 -0
- package/dist/atoms.js +2 -1
- package/dist/atoms.js.map +1 -1
- package/dist/builtins/base64.d.ts +14 -0
- package/dist/builtins/base64.js +219 -0
- package/dist/builtins/base64.js.map +1 -0
- package/dist/builtins/bigint.js +3 -3
- package/dist/builtins/bigint.js.map +1 -1
- package/dist/builtins/date.d.ts +1 -0
- package/dist/builtins/date.js +26 -12
- package/dist/builtins/date.js.map +1 -1
- package/dist/builtins/error.js +9 -0
- package/dist/builtins/error.js.map +1 -1
- package/dist/builtins/float16.d.ts +3 -0
- package/dist/builtins/float16.js +69 -0
- package/dist/builtins/float16.js.map +1 -0
- package/dist/builtins/function.js +2 -2
- package/dist/builtins/index.js +9 -6
- package/dist/builtins/index.js.map +1 -1
- package/dist/builtins/iterator.d.ts +2 -0
- package/dist/builtins/iterator.js +624 -0
- package/dist/builtins/iterator.js.map +1 -0
- package/dist/builtins/json.d.ts +13 -1
- package/dist/builtins/json.js +283 -211
- package/dist/builtins/json.js.map +1 -1
- package/dist/builtins/mapset.js +365 -6
- package/dist/builtins/mapset.js.map +1 -1
- package/dist/builtins/math.js +203 -3
- package/dist/builtins/math.js.map +1 -1
- package/dist/builtins/native.js +6 -6
- package/dist/builtins/object.js +9 -2
- package/dist/builtins/object.js.map +1 -1
- package/dist/builtins/promise.js +31 -11
- package/dist/builtins/promise.js.map +1 -1
- package/dist/builtins/proxy.js +2 -2
- package/dist/builtins/reflect.js +6 -2
- package/dist/builtins/reflect.js.map +1 -1
- package/dist/builtins/regexp.js +74 -3
- package/dist/builtins/regexp.js.map +1 -1
- package/dist/builtins/string.js +1 -1
- package/dist/builtins/symbol.js +1 -1
- package/dist/builtins/symbol.js.map +1 -1
- package/dist/builtins/typedarray.d.ts +1 -0
- package/dist/builtins/typedarray.js +302 -32
- package/dist/builtins/typedarray.js.map +1 -1
- package/dist/builtins/weakref.js +7 -7
- package/dist/embed.d.ts +5 -0
- package/dist/embed.js +47 -15
- package/dist/embed.js.map +1 -1
- package/dist/interpreter.js +15 -14
- package/dist/interpreter.js.map +1 -1
- package/dist/jit.d.ts +1 -0
- package/dist/jit.js +51 -13
- package/dist/jit.js.map +1 -1
- package/dist/jit_hook.d.ts +1 -0
- package/dist/jit_hook.js.map +1 -1
- package/dist/jit_runtime.d.ts +1 -1
- package/dist/jit_runtime.js +6 -6
- package/dist/jit_runtime.js.map +1 -1
- package/dist/jit_stack.d.ts +1 -0
- package/dist/jit_stack.js +2 -1
- package/dist/jit_stack.js.map +1 -1
- package/dist/jseption.d.ts +4 -0
- package/dist/jseption.js +2 -0
- package/dist/jseption.js.map +1 -1
- package/dist/membrane.d.ts +16 -0
- package/dist/membrane.js +576 -0
- package/dist/membrane.js.map +1 -0
- package/dist/module.js +5 -3
- package/dist/module.js.map +1 -1
- package/dist/parser.js +26 -9
- package/dist/parser.js.map +1 -1
- package/dist/print.d.ts +12 -0
- package/dist/print.js +494 -0
- package/dist/print.js.map +1 -0
- package/dist/qjs.js +13 -10
- package/dist/qjs.js.map +1 -1
- package/dist/quickjs.d.ts +8 -0
- package/dist/quickjs.js +132 -53
- package/dist/quickjs.js.map +1 -1
- package/dist/std.d.ts +4 -2
- package/dist/std.js +42 -8
- package/dist/std.js.map +1 -1
- package/dist/values.d.ts +31 -27
- package/dist/values.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- 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
|
|
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
|
|
@@ -206,6 +206,36 @@ run when they settle) and preserves shared references and cycles. `fromGuest` do
|
|
|
206
206
|
reverse, turning guest functions into host functions that call into the guest. See
|
|
207
207
|
`examples/fetch.ts`.
|
|
208
208
|
|
|
209
|
+
### Live host objects (the membrane)
|
|
210
|
+
|
|
211
|
+
`exposeLive` hands the guest a live view of a host API instead of a copy. Every host
|
|
212
|
+
object or function reachable from the root crosses as a proxy created on first use;
|
|
213
|
+
each operation is forwarded to the host object and its result converted the same way,
|
|
214
|
+
so nested objects, returned instances and constructed objects are proxied too:
|
|
215
|
+
|
|
216
|
+
```ts
|
|
217
|
+
import { exposeLive } from 'jseption';
|
|
218
|
+
|
|
219
|
+
exposeLive(ctx, 'Intl', Intl); // the page's real Intl, read-only
|
|
220
|
+
JS_Eval(ctx, `new Intl.DateTimeFormat('en-US', { hour: 'numeric', minute: '2-digit', timeZone: 'UTC' })
|
|
221
|
+
.format(new Date(0))`, 'guest.js', JS_EVAL_TYPE_GLOBAL); // '12:00 AM'
|
|
222
|
+
|
|
223
|
+
exposeLive(ctx, 'store', store, { writable: true, allow: (target, key) => key !== 'internal' });
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
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
|
|
228
|
+
(`fromGuest`), a proxy passed back is unwrapped to its host object, and guest callbacks
|
|
229
|
+
become host functions. The sandbox rules are always on: host intrinsics (`Function`,
|
|
230
|
+
`eval`, `globalThis`, `Object`, `Reflect`, `Proxy`, the intrinsic prototypes, ...) never
|
|
231
|
+
cross; `constructor`, `prototype`, `__proto__`, `caller`, `callee` and `arguments` read as
|
|
232
|
+
`undefined`; a proxy's prototype is the guest's `Object.prototype`; host functions are
|
|
233
|
+
only callable and constructible; host exceptions become guest errors of the same type;
|
|
234
|
+
writes need `writable: true`. The membrane cannot see inside host code, so expose narrow
|
|
235
|
+
roots (`Intl`, `TextEncoder`, a purpose-built facade), never broad objects such as the
|
|
236
|
+
DOM or anything that reaches host globals. See `docs/MEMBRANE.md` for the model, the
|
|
237
|
+
rules and the limits.
|
|
238
|
+
|
|
209
239
|
## Layout
|
|
210
240
|
|
|
211
241
|
```
|
|
@@ -224,6 +254,7 @@ src/std.ts print / console / std / os helpers for the CLI (subset of qu
|
|
|
224
254
|
src/qjs.ts command line interpreter
|
|
225
255
|
src/dump.ts bytecode disassembler
|
|
226
256
|
src/embed.ts host <-> guest value marshalling (expose, toGuest, fromGuest, promises)
|
|
257
|
+
src/membrane.ts live host objects for the guest (exposeLive, toGuestLive)
|
|
227
258
|
examples/ embedding examples (fetch facade)
|
|
228
259
|
bench/ benchmark programs and runners (host vs compiled vs interpreted)
|
|
229
260
|
tests/ bun tests, including the QuickJS test suite files in tests/qjs/
|
|
@@ -265,7 +296,17 @@ Implemented: the complete ES2023 language (classes with private members and stat
|
|
|
265
296
|
blocks, generators, async functions and async generators, destructuring, spread,
|
|
266
297
|
optional chaining, template literals, labeled statements, `with`, direct and indirect
|
|
267
298
|
`eval`, `new.target`, `super`, BigInt, ...), the QuickJS bytecode compiler with its
|
|
268
|
-
peephole optimizations and short opcodes, and the standard library
|
|
299
|
+
peephole optimizations and short opcodes, and the standard library, including the
|
|
300
|
+
QuickJS 2026-06-04 additions: the `Iterator` global with the iterator helpers (`map`,
|
|
301
|
+
`filter`, `take`, `drop`, `flatMap`, `reduce`, `toArray`, `forEach`, `some`, `every`,
|
|
302
|
+
`find`), `Iterator.from` and `Iterator.concat`; the `Set` methods (`union`,
|
|
303
|
+
`intersection`, `difference`, `symmetricDifference`, `isSubsetOf`, `isSupersetOf`,
|
|
304
|
+
`isDisjointFrom`); `Map`/`WeakMap` `getOrInsert` and `getOrInsertComputed`;
|
|
305
|
+
`Math.sumPrecise`, `Math.f16round`, `Float16Array`, `DataView.prototype.getFloat16` /
|
|
306
|
+
`setFloat16`, `Promise.try`, `Error.isError`, `RegExp.escape` and the `Uint8Array`
|
|
307
|
+
base64 / hex methods (`Uint8Array.fromBase64`, `fromHex`, `toBase64`, `toHex`,
|
|
308
|
+
`setFromBase64`, `setFromHex`). These are ported, so they give the same results on
|
|
309
|
+
every host.
|
|
269
310
|
|
|
270
311
|
Differences from the C implementation:
|
|
271
312
|
|
|
@@ -276,7 +317,9 @@ Differences from the C implementation:
|
|
|
276
317
|
* Hot builtins (`Array`, `String`, `Object`, `Math`, `Number`, `JSON`, `Map`, `Set`,
|
|
277
318
|
`RegExp`, ...) forward to the host natives, so their error messages are the host's and
|
|
278
319
|
`Math.random` is the host generator. Builtins that must follow QuickJS (`eval`,
|
|
279
|
-
`Function`, `Error`, `Promise` and the job queue, `Date`, generators) stay ported
|
|
320
|
+
`Function`, `Error`, `Promise` and the job queue, `Date`, generators) stay ported, and
|
|
321
|
+
so do the iterator helpers, the `Set` methods and `getOrInsert*` (they call guest code
|
|
322
|
+
in an order the specification fixes, and their results must be guest objects).
|
|
280
323
|
* Compiled functions have no interpreter frame; see `docs/JIT.md` for how error locations
|
|
281
324
|
are recovered.
|
|
282
325
|
|
|
@@ -291,7 +334,16 @@ Differences from the C implementation:
|
|
|
291
334
|
* Memory management relies on the host garbage collector: there is no reference
|
|
292
335
|
counting, `JS_FreeValue`/`JS_DupValue` are no-ops, and `WeakRef` / `FinalizationRegistry`
|
|
293
336
|
use the host weak references.
|
|
294
|
-
*
|
|
337
|
+
* Guest typed arrays are host typed arrays, so `Float16Array` exists only when the host
|
|
338
|
+
has it (Bun, recent V8 and SpiderMonkey); `Math.f16round` and the `DataView` float16
|
|
339
|
+
methods are ported and always present. A NaN stored into a `Float16Array` element
|
|
340
|
+
gets the host's bit pattern; `DataView.prototype.setFloat16` writes QuickJS's 0x7c01.
|
|
341
|
+
* `RegExp.escape` follows QuickJS, which also escapes U+0000..U+001F and U+0080..U+00FF
|
|
342
|
+
as `\xNN` where the specification leaves most of them as they are (the result
|
|
343
|
+
matches the same text).
|
|
344
|
+
* `ArrayBuffer.prototype.transfer` with a length above `maxByteLength` throws a
|
|
345
|
+
`RangeError` as in the specification; QuickJS throws a `TypeError`.
|
|
346
|
+
* `Atomics` (including `Atomics.pause`) and `SharedArrayBuffer` threads are not ported. `JS_WriteObject` /
|
|
295
347
|
`JS_ReadObject` serialize compiled scripts and modules only, not arbitrary values,
|
|
296
348
|
in a jseption-specific format.
|
|
297
349
|
* 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"]}
|