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.
Files changed (90) hide show
  1. package/README.md +56 -4
  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 +1 -0
  45. package/dist/builtins/typedarray.js +302 -32
  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 +47 -15
  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 +4 -0
  65. package/dist/jseption.js +2 -0
  66. package/dist/jseption.js.map +1 -1
  67. package/dist/membrane.d.ts +16 -0
  68. package/dist/membrane.js +576 -0
  69. package/dist/membrane.js.map +1 -0
  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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterator.js","sourceRoot":"","sources":["../../src/builtins/iterator.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * The Iterator global, %IteratorPrototype% helpers (map, filter, take, drop,\n * flatMap, reduce, toArray, forEach, some, every, find), Iterator.from with\n * %WrapForValidIteratorPrototype%, %IteratorHelperPrototype% and\n * Iterator.concat. Port of the \"Iterator\" section of quickjs.c 2026-06-04\n * (js_iterator_*, js_create_iterator_helper, js_iterator_helper_next).\n *\n * The guest's %IteratorPrototype% is ctx.iterator_proto (builtins/index.ts):\n * every guest iterator prototype (array, map, set, string, regexp string,\n * generator) already inherits from it, so the helpers apply to all of them.\n *\n * Deviations from the C, where the C does not follow the specification\n * (each one checked against the host engine, which implements these\n * natively, by tests/iterator.test.ts):\n * - %IteratorHelperPrototype%.return closes the underlying iterator with\n * IteratorClose (a missing `return` method is not an error) and returns\n * {value: undefined, done: true}; the C calls the underlying `return` as\n * if it were `next`, throws when it is missing and passes its result on.\n * - a helper whose step throws is finished, as a generator is; in the C a\n * later next() goes on with the underlying iterator.\n * - drop() reads only `done` of the results it skips (IteratorStep).\n * - flatMap() reads the inner iterator's `next` once.\n * - reduce() on an empty iterator with no initial value throws without\n * closing the (exhausted) iterator, and a failed `next` lookup is not\n * followed by IteratorClose.\n * - %WrapForValidIteratorPrototype%.next and .return return the result of\n * the underlying call as it is, instead of a new result object.\n * - Iterator.concat returns an Iterator Helper (%IteratorHelperPrototype%,\n * tag \"Iterator Helper\") as the specification says, not an object of its\n * own class; a step that throws finishes it.\n * - the Iterator.prototype.constructor setter follows\n * SetterThatIgnoresPrototypeProperties like the Symbol.toStringTag one.\n */\nimport {\n JSContext, JSValue, JSObject, JSClassID, JSCFunctionEnum, JSRuntime, JS_EXCEPTION, JS_IsException, JS_IsUndefined,\n JS_IsObject, JS_IsFunction, JS_IsNull, JS_NewObjectProto, JS_NewObjectClass, JS_NewArray, JS_NewCFunction2,\n JS_NewCFunctionData, JS_SetOpaque, JS_GetOpaque2, JS_GetProperty, JS_SetProperty, JS_Call, JS_GetIterator2,\n JS_IteratorNext, JS_IteratorNext2, JS_IteratorClose, JS_OrdinaryIsInstanceOf, JS_ThrowTypeError, JS_ThrowRangeError,\n JS_ThrowTypeErrorNotAnObject, JS_ToNumber, JS_ToFloat64, JS_ToBoolFree, JS_DefineProperty, JS_DefinePropertyValue,\n JS_DefinePropertyValueInt64, JS_DefinePropertyValueStr, JS_GetOwnProperty, JS_SetPropertyFunctionList,\n JS_SetConstructor, js_create_from_ctor, js_meta, hooks, JS_NewClass1,\n JS_IsRegisteredClass, JS_CFUNC_DEF, JS_CFUNC_MAGIC_DEF, JS_CGETSET_DEF, JS_ITERATOR_NEXT_DEF, JS_PROP_STRING_DEF,\n JS_PROP_WRITABLE, JS_PROP_CONFIGURABLE, JS_PROP_C_W_E, JS_PROP_THROW, JS_PROP_HAS_GET, JS_PROP_HAS_SET,\n JS_PROP_HAS_CONFIGURABLE, JS_PROP_HAS_ENUMERABLE, JS_ATOM_next, JS_ATOM_return, JS_ATOM_length,\n JS_ATOM_constructor, JS_ATOM_Symbol_iterator, JS_ATOM_Symbol_toStringTag,\n} from '../quickjs.ts';\nimport { GEN_MAGIC_NEXT, GEN_MAGIC_RETURN } from '../interpreter.ts';\n\nconst MAX_SAFE_INTEGER = 9007199254740991;\n\ntype Done = { done: number };\n\n/* pdone.done for an iterator_next function: return the value as it is,\n without wrapping it in a new result object (js_call_c_function) */\nconst RAW_RESULT = 2;\n\nfunction check_function(ctx: JSContext, obj: JSValue): number {\n if (JS_IsFunction(ctx, obj)) return 0;\n JS_ThrowTypeError(ctx, 'not a function');\n return -1;\n}\n\n/* the Iterator constructor of each context (ctx->iterator_ctor) */\nconst iterator_ctors = new WeakMap<JSContext, JSValue>();\n\n/* ------------------------------------------------------------------ */\n/* Iterator Wrap (%WrapForValidIteratorPrototype%) */\n\nclass JSIteratorWrapData {\n constructor(public wrapped_iter: JSValue, public wrapped_next: JSValue) {}\n}\n\nfunction js_iterator_wrap_next(ctx: JSContext, this_val: JSValue, argv: JSValue[], pdone: Done, magic: number): JSValue {\n const it = JS_GetOpaque2(ctx, this_val, JSClassID.ITERATOR_WRAP) as JSIteratorWrapData | null;\n if (!it) return JS_EXCEPTION;\n if (magic === GEN_MAGIC_NEXT) {\n /* Return ? Call(iteratorRecord.[[NextMethod]], iteratorRecord.[[Iterator]]) */\n pdone.done = RAW_RESULT;\n return JS_Call(ctx, it.wrapped_next, it.wrapped_iter, []);\n }\n const method = JS_GetProperty(ctx, it.wrapped_iter, JS_ATOM_return);\n if (JS_IsException(method)) return JS_EXCEPTION;\n if (JS_IsNull(method) || JS_IsUndefined(method)) {\n pdone.done = 1;\n return undefined;\n }\n pdone.done = RAW_RESULT;\n return JS_Call(ctx, method, it.wrapped_iter, []);\n}\n\nconst js_iterator_wrap_proto_funcs = [\n JS_ITERATOR_NEXT_DEF('next', 0, js_iterator_wrap_next, GEN_MAGIC_NEXT),\n JS_ITERATOR_NEXT_DEF('return', 0, js_iterator_wrap_next, GEN_MAGIC_RETURN),\n];\n\n/* ------------------------------------------------------------------ */\n/* Iterator */\n\n/* SetterThatIgnoresPrototypeProperties(this, %Iterator.prototype%, p, v) */\nfunction js_iterator_proto_setter(ctx: JSContext, this_val: JSValue, prop: number, val: JSValue): JSValue {\n if (!JS_IsObject(this_val)) return JS_ThrowTypeErrorNotAnObject(ctx);\n if (this_val === ctx.class_proto[JSClassID.ITERATOR]) return JS_ThrowTypeError(ctx, 'Cannot assign to read only property');\n const res = JS_GetOwnProperty(ctx, null, this_val, prop);\n if (res < 0) return JS_EXCEPTION;\n if (res) {\n if (JS_SetProperty(ctx, this_val, prop, val) < 0) return JS_EXCEPTION;\n } else {\n if (JS_DefinePropertyValue(ctx, this_val, prop, val, JS_PROP_C_W_E | JS_PROP_THROW) < 0) return JS_EXCEPTION;\n }\n return undefined;\n}\n\nfunction js_iterator_constructor_getset(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number,\n func_data: JSValue[]): JSValue {\n if (argv.length > 0) return js_iterator_proto_setter(ctx, this_val, JS_ATOM_constructor, argv[0]); /* setter */\n return func_data[0];\n}\n\nfunction js_iterator_constructor(ctx: JSContext, new_target: JSValue, argv: JSValue[]): JSValue {\n if (!JS_IsObject(new_target)) return JS_ThrowTypeError(ctx, \"constructor requires 'new'\");\n const cf = js_meta.get(new_target as object)?.cfunc;\n if (cf !== undefined && cf !== null && cf.func === js_iterator_constructor) {\n return JS_ThrowTypeError(ctx, 'abstract class not constructable');\n }\n return js_create_from_ctor(ctx, new_target, JSClassID.ITERATOR);\n}\n\n/* ------------------------------------------------------------------ */\n/* Iterator.from */\n\nfunction js_iterator_from(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const obj = argv[0];\n if (!JS_IsObject(obj) && typeof obj !== 'string') return JS_ThrowTypeError(ctx, 'Iterator.from called on non-object');\n let method = JS_GetProperty(ctx, obj, JS_ATOM_Symbol_iterator);\n if (JS_IsException(method)) return JS_EXCEPTION;\n let iter: JSValue;\n if (JS_IsNull(method) || JS_IsUndefined(method)) {\n iter = obj;\n } else {\n iter = JS_GetIterator2(ctx, obj, method);\n if (JS_IsException(iter)) return JS_EXCEPTION;\n }\n method = JS_GetProperty(ctx, iter, JS_ATOM_next);\n if (JS_IsException(method)) return JS_EXCEPTION;\n const ret = JS_OrdinaryIsInstanceOf(ctx, iter, iterator_ctors.get(ctx));\n if (ret < 0) return JS_EXCEPTION;\n if (ret) return iter;\n const wrapper = JS_NewObjectClass(ctx, JSClassID.ITERATOR_WRAP);\n if (JS_IsException(wrapper)) return JS_EXCEPTION;\n JS_SetOpaque(wrapper, new JSIteratorWrapData(iter, method));\n return wrapper;\n}\n\n/* ------------------------------------------------------------------ */\n/* Iterator Helper (%IteratorHelperPrototype%): the iterators returned by */\n/* the prototype methods and by Iterator.concat */\n\nconst enum Kind { DROP, EVERY, FILTER, FIND, FLAT_MAP, FOR_EACH, MAP, SOME, TAKE, CONCAT }\n\nclass JSIteratorHelperData {\n inner: JSValue = undefined; /* innerValue (flatMap) */\n inner_next: JSValue = undefined;\n executing = false;\n done = false;\n /* concat: the (iterable, @@iterator method) pairs and the next pair to open */\n values: JSValue[] = [];\n index = 0;\n constructor(public kind: Kind,\n public obj: JSValue, /* the underlying iterator (concat: the open one, or undefined) */\n public next: JSValue, /* its next method */\n public func: JSValue, /* predicate (filter) or mapper (flatMap, map) */\n public count: number) {} /* limit (drop, take) or counter (filter, map, flatMap) */\n}\n\nfunction js_create_iterator_helper(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number): JSValue {\n if (!JS_IsObject(this_val)) return JS_ThrowTypeErrorNotAnObject(ctx);\n let func: JSValue = undefined;\n let count = 0;\n fail: {\n switch (magic) {\n case Kind.DROP:\n case Kind.TAKE: {\n const v = JS_ToNumber(ctx, argv[0]);\n if (JS_IsException(v)) break fail;\n const dlimit = JS_ToFloat64(ctx, v);\n if (JS_IsException(dlimit)) break fail;\n const d = dlimit as number;\n if (Number.isNaN(d)) { JS_ThrowRangeError(ctx, 'must be positive'); break fail; }\n if (!Number.isFinite(d)) {\n if (d < 0) { JS_ThrowRangeError(ctx, 'must be positive'); break fail; }\n count = MAX_SAFE_INTEGER;\n } else {\n count = Math.trunc(d);\n }\n if (count < 0) { JS_ThrowRangeError(ctx, 'must be positive'); break fail; }\n break;\n }\n case Kind.FILTER:\n case Kind.FLAT_MAP:\n case Kind.MAP:\n func = argv[0];\n if (check_function(ctx, func)) break fail;\n break;\n }\n const method = JS_GetProperty(ctx, this_val, JS_ATOM_next);\n if (JS_IsException(method)) return JS_EXCEPTION; /* GetIteratorDirect: no IteratorClose */\n const obj = JS_NewObjectClass(ctx, JSClassID.ITERATOR_HELPER);\n if (JS_IsException(obj)) break fail;\n JS_SetOpaque(obj, new JSIteratorHelperData(magic, this_val, method, func, count));\n return obj;\n }\n JS_IteratorClose(ctx, this_val, true);\n return JS_EXCEPTION;\n}\n\n/* Iterator.concat(...items) */\nfunction js_iterator_concat(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const values: JSValue[] = [];\n for (let i = 0; i < argv.length; i++) {\n const obj = argv[i];\n if (!JS_IsObject(obj)) return JS_ThrowTypeErrorNotAnObject(ctx);\n const method = JS_GetProperty(ctx, obj, JS_ATOM_Symbol_iterator);\n if (JS_IsException(method)) return JS_EXCEPTION;\n if (!JS_IsFunction(ctx, method)) return JS_ThrowTypeError(ctx, 'not a function');\n values.push(obj, method);\n }\n const obj = JS_NewObjectClass(ctx, JSClassID.ITERATOR_HELPER);\n if (JS_IsException(obj)) return JS_EXCEPTION;\n const it = new JSIteratorHelperData(Kind.CONCAT, undefined, undefined, undefined, 0);\n it.values = values;\n JS_SetOpaque(obj, it);\n return obj;\n}\n\n/* every, find, forEach, some */\nfunction js_iterator_proto_func(ctx: JSContext, this_val: JSValue, argv: JSValue[], magic: number): JSValue {\n if (!JS_IsObject(this_val)) return JS_ThrowTypeErrorNotAnObject(ctx);\n const func = argv[0];\n if (check_function(ctx, func)) {\n JS_IteratorClose(ctx, this_val, true);\n return JS_EXCEPTION;\n }\n const method = JS_GetProperty(ctx, this_val, JS_ATOM_next);\n if (JS_IsException(method)) return JS_EXCEPTION;\n const pdone: Done = { done: 0 };\n let r: JSValue = magic === Kind.EVERY ? true : magic === Kind.SOME ? false : undefined;\n for (let idx = 0; ; idx++) {\n const item = JS_IteratorNext(ctx, this_val, method, [], pdone);\n if (JS_IsException(item)) return JS_EXCEPTION;\n if (pdone.done) break;\n const ret = JS_Call(ctx, func, undefined, [item, idx]);\n if (JS_IsException(ret)) {\n JS_IteratorClose(ctx, this_val, true);\n return JS_EXCEPTION;\n }\n if (magic === Kind.FOR_EACH) continue;\n const b = JS_ToBoolFree(ctx, ret);\n let stop: boolean, result: JSValue;\n switch (magic) {\n case Kind.EVERY: stop = !b; result = false; break;\n case Kind.FIND: stop = b; result = item; break;\n default: stop = b; result = true; break; /* SOME */\n }\n if (stop) {\n if (JS_IteratorClose(ctx, this_val, false) < 0) return JS_EXCEPTION;\n r = result;\n break;\n }\n }\n return r;\n}\n\nfunction js_iterator_proto_reduce(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n if (!JS_IsObject(this_val)) return JS_ThrowTypeErrorNotAnObject(ctx);\n const func = argv[0];\n if (check_function(ctx, func)) {\n JS_IteratorClose(ctx, this_val, true);\n return JS_EXCEPTION;\n }\n const method = JS_GetProperty(ctx, this_val, JS_ATOM_next);\n if (JS_IsException(method)) return JS_EXCEPTION;\n const pdone: Done = { done: 0 };\n let acc: JSValue, idx: number;\n if (argv.length > 1) {\n acc = argv[1];\n idx = 0;\n } else {\n acc = JS_IteratorNext(ctx, this_val, method, [], pdone);\n if (JS_IsException(acc)) return JS_EXCEPTION;\n if (pdone.done) return JS_ThrowTypeError(ctx, 'empty iterator');\n idx = 1;\n }\n for (; ; idx++) {\n const item = JS_IteratorNext(ctx, this_val, method, [], pdone);\n if (JS_IsException(item)) return JS_EXCEPTION;\n if (pdone.done) break;\n const ret = JS_Call(ctx, func, undefined, [acc, item, idx]);\n if (JS_IsException(ret)) {\n JS_IteratorClose(ctx, this_val, true);\n return JS_EXCEPTION;\n }\n acc = ret;\n }\n return acc;\n}\n\nfunction js_iterator_proto_toArray(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n if (!JS_IsObject(this_val)) return JS_ThrowTypeErrorNotAnObject(ctx);\n const method = JS_GetProperty(ctx, this_val, JS_ATOM_next);\n if (JS_IsException(method)) return JS_EXCEPTION;\n const result = JS_NewArray(ctx);\n if (JS_IsException(result)) return JS_EXCEPTION;\n const pdone: Done = { done: 0 };\n let idx = 0;\n for (; ; idx++) {\n const item = JS_IteratorNext(ctx, this_val, method, [], pdone);\n if (JS_IsException(item)) return JS_EXCEPTION;\n if (pdone.done) break;\n if (JS_DefinePropertyValueInt64(ctx, result, idx, item, JS_PROP_C_W_E | JS_PROP_THROW) < 0) return JS_EXCEPTION;\n }\n if (JS_SetProperty(ctx, result, JS_ATOM_length, idx) < 0) return JS_EXCEPTION;\n return result;\n}\n\nfunction js_iterator_proto_get_toStringTag(ctx: JSContext, this_val: JSValue): JSValue {\n return 'Iterator';\n}\n\nfunction js_iterator_proto_set_toStringTag(ctx: JSContext, this_val: JSValue, val: JSValue): JSValue {\n return js_iterator_proto_setter(ctx, this_val, JS_ATOM_Symbol_toStringTag, val);\n}\n\n/* one step of Iterator.concat: the next value, or done when every iterable is exhausted */\nfunction concat_step(ctx: JSContext, it: JSIteratorHelperData, pdone: Done): JSValue {\n for (;;) {\n if (JS_IsUndefined(it.obj)) {\n if (it.index >= it.values.length) {\n pdone.done = 1;\n return undefined;\n }\n const iter = JS_GetIterator2(ctx, it.values[it.index], it.values[it.index + 1]);\n it.values[it.index] = it.values[it.index + 1] = undefined;\n it.index += 2;\n if (JS_IsException(iter)) return JS_EXCEPTION;\n const next = JS_GetProperty(ctx, iter, JS_ATOM_next);\n if (JS_IsException(next)) return JS_EXCEPTION;\n it.obj = iter;\n it.next = next;\n }\n const d: Done = { done: 0 };\n const item = JS_IteratorNext(ctx, it.obj, it.next, [], d);\n if (JS_IsException(item)) return JS_EXCEPTION;\n if (!d.done) return item;\n /* this iterable is exhausted: go on with the next one */\n it.obj = undefined;\n it.next = undefined;\n }\n}\n\nfunction js_iterator_helper_next(ctx: JSContext, this_val: JSValue, argv: JSValue[], pdone: Done, magic: number): JSValue {\n pdone.done = 0;\n const it = JS_GetOpaque2(ctx, this_val, JSClassID.ITERATOR_HELPER) as JSIteratorHelperData | null;\n if (!it) return JS_EXCEPTION;\n if (it.executing) return JS_ThrowTypeError(ctx, 'cannot invoke a running iterator');\n if (it.done) {\n pdone.done = 1;\n return undefined;\n }\n it.executing = true;\n let ret: JSValue;\n if (magic === GEN_MAGIC_RETURN) {\n /* GeneratorResumeAbrupt with a return completion: close the inner\n (flatMap) and the underlying iterator, then report done */\n ret = undefined;\n pdone.done = 1;\n it.done = true;\n it.values = [];\n if (!JS_IsUndefined(it.inner)) {\n const inner = it.inner;\n it.inner = undefined;\n if (JS_IteratorClose(ctx, inner, false) < 0) {\n if (!JS_IsUndefined(it.obj)) JS_IteratorClose(ctx, it.obj, true);\n ret = JS_EXCEPTION;\n }\n }\n if (!JS_IsException(ret) && !JS_IsUndefined(it.obj) && JS_IteratorClose(ctx, it.obj, false) < 0) ret = JS_EXCEPTION;\n it.executing = false;\n return ret;\n }\n const method = it.next;\n done: {\n fail: {\n switch (it.kind) {\n case Kind.DROP: {\n while (it.count > 0) {\n it.count--;\n /* IteratorStep: only `done` is read */\n const r = JS_IteratorNext2(ctx, it.obj, method, [], pdone);\n if (JS_IsException(r)) { ret = JS_EXCEPTION; break done; }\n if (pdone.done) { ret = undefined; break done; }\n }\n ret = JS_IteratorNext(ctx, it.obj, method, [], pdone);\n break done;\n }\n case Kind.FILTER: {\n for (;;) {\n const item = JS_IteratorNext(ctx, it.obj, method, [], pdone);\n if (JS_IsException(item)) { ret = JS_EXCEPTION; break done; }\n if (pdone.done) { ret = item; break done; }\n const selected = JS_Call(ctx, it.func, undefined, [item, it.count++]);\n if (JS_IsException(selected)) break fail;\n if (JS_ToBoolFree(ctx, selected)) { ret = item; break done; }\n }\n }\n case Kind.FLAT_MAP: {\n for (;;) {\n if (JS_IsUndefined(it.inner)) {\n const item = JS_IteratorNext(ctx, it.obj, method, [], pdone);\n if (JS_IsException(item)) { ret = JS_EXCEPTION; break done; }\n if (pdone.done) { ret = item; break done; }\n const mapped = JS_Call(ctx, it.func, undefined, [item, it.count++]);\n if (JS_IsException(mapped)) break fail;\n /* GetIteratorFlattenable(mapped, reject-primitives) */\n if (!JS_IsObject(mapped)) {\n JS_ThrowTypeError(ctx, 'not an object');\n break fail;\n }\n const m = JS_GetProperty(ctx, mapped, JS_ATOM_Symbol_iterator);\n if (JS_IsException(m)) break fail;\n let iter: JSValue;\n if (JS_IsNull(m) || JS_IsUndefined(m)) {\n iter = mapped;\n } else {\n iter = JS_GetIterator2(ctx, mapped, m);\n if (JS_IsException(iter)) break fail;\n }\n const inner_next = JS_GetProperty(ctx, iter, JS_ATOM_next);\n if (JS_IsException(inner_next)) break fail;\n it.inner = iter;\n it.inner_next = inner_next;\n }\n const d: Done = { done: 0 };\n const item = JS_IteratorNext(ctx, it.inner, it.inner_next, [], d);\n if (JS_IsException(item)) {\n it.inner = it.inner_next = undefined;\n break fail;\n }\n if (d.done) {\n /* the inner iterator is exhausted: the outer one goes on */\n it.inner = it.inner_next = undefined;\n continue;\n }\n ret = item;\n break done;\n }\n }\n case Kind.MAP: {\n const item = JS_IteratorNext(ctx, it.obj, method, [], pdone);\n if (JS_IsException(item)) { ret = JS_EXCEPTION; break done; }\n if (pdone.done) { ret = item; break done; }\n ret = JS_Call(ctx, it.func, undefined, [item, it.count++]);\n if (JS_IsException(ret)) break fail;\n break done;\n }\n case Kind.TAKE: {\n if (it.count > 0) {\n it.count--;\n ret = JS_IteratorNext(ctx, it.obj, method, [], pdone);\n break done;\n }\n pdone.done = 1;\n ret = JS_IteratorClose(ctx, it.obj, false) < 0 ? JS_EXCEPTION : undefined;\n break done;\n }\n case Kind.CONCAT:\n ret = concat_step(ctx, it, pdone);\n break done;\n default:\n throw new Error('iterator helper: bad kind');\n }\n }\n /* close the iterator object, preserving the pending exception */\n JS_IteratorClose(ctx, it.obj, true);\n ret = JS_EXCEPTION;\n }\n /* an exception ends the helper, as it ends a generator */\n if (JS_IsException(ret!) || pdone.done) {\n it.done = true;\n it.values = [];\n }\n it.executing = false;\n return ret!;\n}\n\nconst js_iterator_funcs = [\n JS_CFUNC_DEF('concat', 0, js_iterator_concat),\n JS_CFUNC_DEF('from', 1, js_iterator_from),\n];\n\nconst js_iterator_proto_funcs = [\n JS_CFUNC_MAGIC_DEF('drop', 1, js_create_iterator_helper, Kind.DROP),\n JS_CFUNC_MAGIC_DEF('filter', 1, js_create_iterator_helper, Kind.FILTER),\n JS_CFUNC_MAGIC_DEF('flatMap', 1, js_create_iterator_helper, Kind.FLAT_MAP),\n JS_CFUNC_MAGIC_DEF('map', 1, js_create_iterator_helper, Kind.MAP),\n JS_CFUNC_MAGIC_DEF('take', 1, js_create_iterator_helper, Kind.TAKE),\n JS_CFUNC_MAGIC_DEF('every', 1, js_iterator_proto_func, Kind.EVERY),\n JS_CFUNC_MAGIC_DEF('find', 1, js_iterator_proto_func, Kind.FIND),\n JS_CFUNC_MAGIC_DEF('forEach', 1, js_iterator_proto_func, Kind.FOR_EACH),\n JS_CFUNC_MAGIC_DEF('some', 1, js_iterator_proto_func, Kind.SOME),\n JS_CFUNC_DEF('reduce', 1, js_iterator_proto_reduce),\n JS_CFUNC_DEF('toArray', 0, js_iterator_proto_toArray),\n /* [Symbol.iterator] is defined with %IteratorPrototype% (builtins/index.ts) */\n JS_CGETSET_DEF(JS_ATOM_Symbol_toStringTag, js_iterator_proto_get_toStringTag, js_iterator_proto_set_toStringTag),\n];\n\nconst js_iterator_helper_proto_funcs = [\n JS_ITERATOR_NEXT_DEF('next', 0, js_iterator_helper_next, GEN_MAGIC_NEXT),\n JS_ITERATOR_NEXT_DEF('return', 0, js_iterator_helper_next, GEN_MAGIC_RETURN),\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'Iterator Helper', JS_PROP_CONFIGURABLE),\n];\n\n/* the class ids of this file, registered in every runtime */\nhooks.init_runtime.push((rt: JSRuntime) => {\n for (const [id, name] of [[JSClassID.ITERATOR, 'Iterator'], [JSClassID.ITERATOR_HELPER, 'Iterator Helper'],\n [JSClassID.ITERATOR_WRAP, 'Iterator Wrap']] as const) {\n if (!JS_IsRegisteredClass(rt, id)) JS_NewClass1(rt, id, { class_name: rt.atoms.newAtomStr(name) });\n }\n});\n\n/* Iterator and its prototypes; %IteratorPrototype% is ctx.iterator_proto */\nexport function JS_AddIntrinsicIterator(ctx: JSContext): void {\n const proto = ctx.iterator_proto!;\n ctx.class_proto[JSClassID.ITERATOR] = proto;\n JS_SetPropertyFunctionList(ctx, proto, js_iterator_proto_funcs);\n const ctor = JS_NewCFunction2(ctx, js_iterator_constructor, 'Iterator', 0, JSCFunctionEnum.constructor_or_func, 0);\n JS_SetPropertyFunctionList(ctx, ctor, js_iterator_funcs);\n JS_DefinePropertyValueStr(ctx, ctx.global_obj, 'Iterator', ctor, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_SetConstructor(ctx, ctor, proto);\n /* quirk: Iterator.prototype.constructor is an accessor property */\n const getset = JS_NewCFunctionData(ctx, js_iterator_constructor_getset, 0, 0, [ctor]);\n JS_DefineProperty(ctx, proto, JS_ATOM_constructor, undefined, getset, getset,\n JS_PROP_HAS_GET | JS_PROP_HAS_SET | JS_PROP_HAS_CONFIGURABLE | JS_PROP_CONFIGURABLE |\n JS_PROP_HAS_ENUMERABLE);\n iterator_ctors.set(ctx, ctor);\n\n for (const [id, funcs] of [[JSClassID.ITERATOR_HELPER, js_iterator_helper_proto_funcs],\n [JSClassID.ITERATOR_WRAP, js_iterator_wrap_proto_funcs]] as const) {\n const p = JS_NewObjectProto(ctx, proto) as JSObject;\n ctx.class_proto[id] = p;\n JS_SetPropertyFunctionList(ctx, p, funcs);\n }\n}\n\n"]}
@@ -1,6 +1,18 @@
1
- import { JSContext, JSValue } from '../quickjs.ts';
1
+ import { JSContext, JSValue, JSAtom } from '../quickjs.ts';
2
2
  export declare const JS_PARSE_JSON_EXT: number;
3
+ export interface JSONParseRecord {
4
+ value: JSValue;
5
+ elements?: JSONParseRecord[];
6
+ entries?: Map<JSAtom, JSONParseRecord>;
7
+ source_pos?: number;
8
+ source_len?: number;
9
+ }
10
+ export declare function JS_ParseJSON3(ctx: JSContext, buf: string, filename: string, flags: number, pr: JSONParseRecord | null): JSValue;
3
11
  export declare function JS_ParseJSON2(ctx: JSContext, buf: string, filename: string, flags: number): JSValue;
4
12
  export declare function JS_ParseJSON(ctx: JSContext, buf: string, filename: string): JSValue;
13
+ export declare const json_host_raw: {
14
+ rawJSON?: (s: string) => object;
15
+ isRawJSON?: (v: unknown) => boolean;
16
+ };
5
17
  export declare function JS_JSONStringify(ctx: JSContext, obj: JSValue, replacer: JSValue, space0: JSValue): JSValue;
6
18
  export declare function JS_AddIntrinsicJSON(ctx: JSContext): void;