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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/builtins/error.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Error objects (port of the Error part of quickjs.c)\n */\nimport * as Q from '../quickjs.ts';\nimport {\n JSContext, JSValue, JSObject, JSClassID, JSErrorEnum, JS_EXCEPTION, JS_IsException, JS_IsUndefined, JS_IsObject,\n JS_NewObjectProtoClass, JS_NewObjectProto, JS_NewCFunction3, JS_NewCFunctionMagic, JSCFunctionEnum,\n JS_DefinePropertyValue, JS_DefinePropertyValueStr, JS_PROP_WRITABLE, JS_PROP_CONFIGURABLE, JS_PROP_C_W_E,\n JS_GetProperty, JS_ToString, JS_ToStringInternal, JS_ThrowTypeError, JS_ThrowTypeErrorNotAnObject, JS_HasProperty,\n JS_ATOM_message, JS_ATOM_name, JS_ATOM_cause, JS_ATOM_stack, JS_ATOM_errors, JS_ATOM_prototype, JS_ATOM_constructor,\n JS_GetIterator, JS_IteratorNext, JS_IteratorClose, JS_NewArrayFrom, js_create_from_ctor, build_backtrace,\n JS_SetPropertyFunctionList, JS_CFUNC_DEF, JS_PROP_STRING_DEF, JS_CGETSET_DEF, JS_SetConstructor2, JS_NewAtom,\n JS_ToInt32Sat, JS_ThrowRangeError, JS_BACKTRACE_FLAG_SKIP_FIRST_LEVEL,\n} from '../quickjs.ts';\n\nconst native_error_name: string[] = [\n 'EvalError', 'RangeError', 'ReferenceError', 'SyntaxError', 'TypeError', 'URIError', 'InternalError', 'AggregateError',\n];\n\n/* AggregateError */\nfunction iterator_to_array(ctx: JSContext, items: JSValue): JSValue {\n const iter = JS_GetIterator(ctx, items, false);\n if (JS_IsException(iter)) return iter;\n const next_method = JS_GetProperty(ctx, iter, JS_NewAtom(ctx, 'next'));\n if (JS_IsException(next_method)) return next_method;\n const values: JSValue[] = [];\n const pdone = { done: 0 };\n for (;;) {\n const v = JS_IteratorNext(ctx, iter, next_method, [], pdone);\n if (JS_IsException(v)) return v;\n if (pdone.done) break;\n values.push(v);\n }\n return JS_NewArrayFrom(ctx, values);\n}\n\n/* Error constructor: magic is the error number (JSErrorEnum.PLAIN_ERROR for Error) */\nfunction js_error_constructor(ctx: JSContext, new_target: JSValue, argv: JSValue[], magic: number): JSValue {\n let proto: JSValue;\n let arg_index = (magic === JSErrorEnum.AGGREGATE_ERROR) ? 1 : 0;\n if (JS_IsUndefined(new_target)) new_target = ctx.rt.current_stack_frame?.cur_func ?? undefined;\n if (JS_IsUndefined(new_target)) {\n proto = magic < 0 ? ctx.class_proto[JSClassID.ERROR] : ctx.native_error_proto[magic];\n } else {\n proto = JS_GetProperty(ctx, new_target, JS_ATOM_prototype);\n if (JS_IsException(proto)) return proto;\n if (!JS_IsObject(proto)) {\n /* use the default prototype of the realm of new_target */\n if (magic < 0) proto = ctx.class_proto[JSClassID.ERROR];\n else proto = ctx.native_error_proto[magic];\n }\n }\n const obj = JS_NewObjectProtoClass(ctx, proto, JSClassID.ERROR);\n if (JS_IsException(obj)) return obj;\n const message = argv[arg_index];\n if (!JS_IsUndefined(message)) {\n const msg = JS_ToString(ctx, message);\n if (JS_IsException(msg)) return msg;\n JS_DefinePropertyValue(ctx, obj, JS_ATOM_message, msg, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n }\n const options = argv[arg_index + 1];\n if (JS_IsObject(options)) {\n const present = JS_HasProperty(ctx, options, JS_ATOM_cause);\n if (present < 0) return JS_EXCEPTION;\n if (present) {\n const cause = JS_GetProperty(ctx, options, JS_ATOM_cause);\n if (JS_IsException(cause)) return cause;\n JS_DefinePropertyValue(ctx, obj, JS_ATOM_cause, cause, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n }\n }\n if (magic === JSErrorEnum.AGGREGATE_ERROR) {\n const error_list = iterator_to_array(ctx, argv[0]);\n if (JS_IsException(error_list)) return error_list;\n JS_DefinePropertyValue(ctx, obj, JS_ATOM_errors, error_list, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n }\n /* skip the Error() function in the backtrace */\n build_backtrace(ctx, obj, null, 0, 0, JS_BACKTRACE_FLAG_SKIP_FIRST_LEVEL);\n return obj;\n}\n\nfunction js_error_toString(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n if (!JS_IsObject(this_val)) return JS_ThrowTypeErrorNotAnObject(ctx);\n let name = JS_GetProperty(ctx, this_val, JS_ATOM_name);\n if (JS_IsException(name)) return name;\n if (JS_IsUndefined(name)) name = 'Error';\n else { name = JS_ToString(ctx, name); if (JS_IsException(name)) return name; }\n let msg = JS_GetProperty(ctx, this_val, JS_ATOM_message);\n if (JS_IsException(msg)) return msg;\n if (JS_IsUndefined(msg)) msg = '';\n else { msg = JS_ToString(ctx, msg); if (JS_IsException(msg)) return msg; }\n if ((name as string).length === 0) return msg;\n if ((msg as string).length === 0) return name;\n return (name as string) + ': ' + (msg as string);\n}\n\nfunction js_error_get_prepareStackTrace(ctx: JSContext, this_val: JSValue): JSValue {\n return ctx.error_prepare_stack;\n}\nfunction js_error_set_prepareStackTrace(ctx: JSContext, this_val: JSValue, value: JSValue): JSValue {\n ctx.error_prepare_stack = value;\n return undefined;\n}\nfunction js_error_get_stackTraceLimit(ctx: JSContext, this_val: JSValue): JSValue {\n return ctx.error_stack_trace_limit;\n}\nfunction js_error_set_stackTraceLimit(ctx: JSContext, this_val: JSValue, value: JSValue): JSValue {\n const n = JS_ToInt32Sat(ctx, value);\n if (JS_IsException(n)) return n;\n ctx.error_stack_trace_limit = n as number;\n return undefined;\n}\n\nconst js_error_proto_funcs = [\n JS_CFUNC_DEF('toString', 0, js_error_toString),\n JS_PROP_STRING_DEF('name', 'Error', JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE),\n JS_PROP_STRING_DEF('message', '', JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE),\n];\n\nexport function JS_AddIntrinsicError(ctx: JSContext): void {\n /* Error */\n const error_proto = JS_NewObjectProto(ctx, ctx.class_proto[JSClassID.OBJECT]) as JSObject;\n ctx.class_proto[JSClassID.ERROR] = error_proto;\n const obj1 = JS_NewCFunctionMagic(ctx, js_error_constructor as any, 'Error', 1, JSCFunctionEnum.constructor_or_func_magic, -1);\n JS_SetConstructor2(ctx, obj1, error_proto, 0, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_SetPropertyFunctionList(ctx, error_proto, js_error_proto_funcs);\n JS_SetPropertyFunctionList(ctx, obj1, [\n JS_CGETSET_DEF('prepareStackTrace', js_error_get_prepareStackTrace, js_error_set_prepareStackTrace),\n JS_CGETSET_DEF('stackTraceLimit', js_error_get_stackTraceLimit, js_error_set_stackTraceLimit),\n ]);\n JS_DefinePropertyValueStr(ctx, ctx.global_obj, 'Error', obj1, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n ctx.error_ctor = obj1 as JSObject;\n\n for (let i = 0; i < JSErrorEnum.NATIVE_ERROR_COUNT; i++) {\n const proto = JS_NewObjectProto(ctx, error_proto) as JSObject;\n ctx.native_error_proto[i] = proto;\n const name = native_error_name[i];\n const n_args = (i === JSErrorEnum.AGGREGATE_ERROR) ? 2 : 1;\n const func_obj = JS_NewCFunction3(ctx, js_error_constructor, name, n_args, JSCFunctionEnum.constructor_or_func_magic, i, obj1);\n JS_SetConstructor2(ctx, func_obj, proto, 0, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_DefinePropertyValue(ctx, proto, JS_ATOM_name, name, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_DefinePropertyValue(ctx, proto, JS_ATOM_message, '', JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_DefinePropertyValueStr(ctx, ctx.global_obj, name, func_obj, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/builtins/error.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Error objects (port of the Error part of quickjs.c)\n */\nimport * as Q from '../quickjs.ts';\nimport {\n JSContext, JSValue, JSObject, JSClassID, JSErrorEnum, JS_EXCEPTION, JS_IsException, JS_IsUndefined, JS_IsObject,\n JS_NewObjectProtoClass, JS_NewObjectProto, JS_NewCFunction3, JS_NewCFunctionMagic, JSCFunctionEnum,\n JS_DefinePropertyValue, JS_DefinePropertyValueStr, JS_PROP_WRITABLE, JS_PROP_CONFIGURABLE, JS_PROP_C_W_E,\n JS_GetProperty, JS_ToString, JS_ToStringInternal, JS_ThrowTypeError, JS_ThrowTypeErrorNotAnObject, JS_HasProperty,\n JS_ATOM_message, JS_ATOM_name, JS_ATOM_cause, JS_ATOM_stack, JS_ATOM_errors, JS_ATOM_prototype, JS_ATOM_constructor,\n JS_GetIterator, JS_IteratorNext, JS_IteratorClose, JS_NewArrayFrom, js_create_from_ctor, build_backtrace,\n JS_SetPropertyFunctionList, JS_CFUNC_DEF, JS_PROP_STRING_DEF, JS_CGETSET_DEF, JS_SetConstructor2, JS_NewAtom,\n JS_ToInt32Sat, JS_ThrowRangeError, JS_BACKTRACE_FLAG_SKIP_FIRST_LEVEL,\n} from '../quickjs.ts';\n\nconst native_error_name: string[] = [\n 'EvalError', 'RangeError', 'ReferenceError', 'SyntaxError', 'TypeError', 'URIError', 'InternalError', 'AggregateError',\n];\n\n/* AggregateError */\nfunction iterator_to_array(ctx: JSContext, items: JSValue): JSValue {\n const iter = JS_GetIterator(ctx, items, false);\n if (JS_IsException(iter)) return iter;\n const next_method = JS_GetProperty(ctx, iter, JS_NewAtom(ctx, 'next'));\n if (JS_IsException(next_method)) return next_method;\n const values: JSValue[] = [];\n const pdone = { done: 0 };\n for (;;) {\n const v = JS_IteratorNext(ctx, iter, next_method, [], pdone);\n if (JS_IsException(v)) return v;\n if (pdone.done) break;\n values.push(v);\n }\n return JS_NewArrayFrom(ctx, values);\n}\n\n/* Error constructor: magic is the error number (JSErrorEnum.PLAIN_ERROR for Error) */\nfunction js_error_constructor(ctx: JSContext, new_target: JSValue, argv: JSValue[], magic: number): JSValue {\n let proto: JSValue;\n let arg_index = (magic === JSErrorEnum.AGGREGATE_ERROR) ? 1 : 0;\n if (JS_IsUndefined(new_target)) new_target = ctx.rt.current_stack_frame?.cur_func ?? undefined;\n if (JS_IsUndefined(new_target)) {\n proto = magic < 0 ? ctx.class_proto[JSClassID.ERROR] : ctx.native_error_proto[magic];\n } else {\n proto = JS_GetProperty(ctx, new_target, JS_ATOM_prototype);\n if (JS_IsException(proto)) return proto;\n if (!JS_IsObject(proto)) {\n /* use the default prototype of the realm of new_target */\n if (magic < 0) proto = ctx.class_proto[JSClassID.ERROR];\n else proto = ctx.native_error_proto[magic];\n }\n }\n const obj = JS_NewObjectProtoClass(ctx, proto, JSClassID.ERROR);\n if (JS_IsException(obj)) return obj;\n const message = argv[arg_index];\n if (!JS_IsUndefined(message)) {\n const msg = JS_ToString(ctx, message);\n if (JS_IsException(msg)) return msg;\n JS_DefinePropertyValue(ctx, obj, JS_ATOM_message, msg, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n }\n const options = argv[arg_index + 1];\n if (JS_IsObject(options)) {\n const present = JS_HasProperty(ctx, options, JS_ATOM_cause);\n if (present < 0) return JS_EXCEPTION;\n if (present) {\n const cause = JS_GetProperty(ctx, options, JS_ATOM_cause);\n if (JS_IsException(cause)) return cause;\n JS_DefinePropertyValue(ctx, obj, JS_ATOM_cause, cause, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n }\n }\n if (magic === JSErrorEnum.AGGREGATE_ERROR) {\n const error_list = iterator_to_array(ctx, argv[0]);\n if (JS_IsException(error_list)) return error_list;\n JS_DefinePropertyValue(ctx, obj, JS_ATOM_errors, error_list, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n }\n /* skip the Error() function in the backtrace */\n build_backtrace(ctx, obj, null, 0, 0, JS_BACKTRACE_FLAG_SKIP_FIRST_LEVEL);\n return obj;\n}\n\nfunction js_error_toString(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n if (!JS_IsObject(this_val)) return JS_ThrowTypeErrorNotAnObject(ctx);\n let name = JS_GetProperty(ctx, this_val, JS_ATOM_name);\n if (JS_IsException(name)) return name;\n if (JS_IsUndefined(name)) name = 'Error';\n else { name = JS_ToString(ctx, name); if (JS_IsException(name)) return name; }\n let msg = JS_GetProperty(ctx, this_val, JS_ATOM_message);\n if (JS_IsException(msg)) return msg;\n if (JS_IsUndefined(msg)) msg = '';\n else { msg = JS_ToString(ctx, msg); if (JS_IsException(msg)) return msg; }\n if ((name as string).length === 0) return msg;\n if ((msg as string).length === 0) return name;\n return (name as string) + ': ' + (msg as string);\n}\n\nfunction js_error_get_prepareStackTrace(ctx: JSContext, this_val: JSValue): JSValue {\n return ctx.error_prepare_stack;\n}\nfunction js_error_set_prepareStackTrace(ctx: JSContext, this_val: JSValue, value: JSValue): JSValue {\n ctx.error_prepare_stack = value;\n return undefined;\n}\nfunction js_error_get_stackTraceLimit(ctx: JSContext, this_val: JSValue): JSValue {\n return ctx.error_stack_trace_limit;\n}\nfunction js_error_set_stackTraceLimit(ctx: JSContext, this_val: JSValue, value: JSValue): JSValue {\n const n = JS_ToInt32Sat(ctx, value);\n if (JS_IsException(n)) return n;\n ctx.error_stack_trace_limit = n as number;\n return undefined;\n}\n\n/* Error.isError(value) */\nfunction js_error_isError(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n return Q.JS_IsError(ctx, argv[0]);\n}\n\nconst js_error_proto_funcs = [\n JS_CFUNC_DEF('toString', 0, js_error_toString),\n JS_PROP_STRING_DEF('name', 'Error', JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE),\n JS_PROP_STRING_DEF('message', '', JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE),\n];\n\nexport function JS_AddIntrinsicError(ctx: JSContext): void {\n /* Error */\n const error_proto = JS_NewObjectProto(ctx, ctx.class_proto[JSClassID.OBJECT]) as JSObject;\n ctx.class_proto[JSClassID.ERROR] = error_proto;\n const obj1 = JS_NewCFunctionMagic(ctx, js_error_constructor as any, 'Error', 1, JSCFunctionEnum.constructor_or_func_magic, -1);\n JS_SetConstructor2(ctx, obj1, error_proto, 0, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_SetPropertyFunctionList(ctx, error_proto, js_error_proto_funcs);\n JS_SetPropertyFunctionList(ctx, obj1, [\n JS_CFUNC_DEF('isError', 1, js_error_isError),\n JS_CGETSET_DEF('prepareStackTrace', js_error_get_prepareStackTrace, js_error_set_prepareStackTrace),\n JS_CGETSET_DEF('stackTraceLimit', js_error_get_stackTraceLimit, js_error_set_stackTraceLimit),\n ]);\n JS_DefinePropertyValueStr(ctx, ctx.global_obj, 'Error', obj1, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n ctx.error_ctor = obj1 as JSObject;\n\n for (let i = 0; i < JSErrorEnum.NATIVE_ERROR_COUNT; i++) {\n const proto = JS_NewObjectProto(ctx, error_proto) as JSObject;\n ctx.native_error_proto[i] = proto;\n const name = native_error_name[i];\n const n_args = (i === JSErrorEnum.AGGREGATE_ERROR) ? 2 : 1;\n const func_obj = JS_NewCFunction3(ctx, js_error_constructor, name, n_args, JSCFunctionEnum.constructor_or_func_magic, i, obj1);\n JS_SetConstructor2(ctx, func_obj, proto, 0, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_DefinePropertyValue(ctx, proto, JS_ATOM_name, name, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_DefinePropertyValue(ctx, proto, JS_ATOM_message, '', JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n JS_DefinePropertyValueStr(ctx, ctx.global_obj, name, func_obj, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n }\n}\n"]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* IEEE 754 binary16 conversions (port of tofp16 / fromfp16 in cutils.h).
|
|
3
|
+
*
|
|
4
|
+
* They are implemented here rather than borrowed from the host so that
|
|
5
|
+
* Math.f16round and DataView.prototype.getFloat16 / setFloat16 behave the
|
|
6
|
+
* same on every host, including hosts without Float16Array. The bit
|
|
7
|
+
* patterns are QuickJS's: a NaN is stored as 0x7c01 with its sign.
|
|
8
|
+
*/
|
|
9
|
+
/* the bits of 0x1p-25. Written without a hex bigint literal containing the
|
|
10
|
+
digit 'e' (0x3e60000000000000n), which jseption's own lexer rejects, so
|
|
11
|
+
that this file still parses with jseption (tests/strip-types.test.ts) */
|
|
12
|
+
const P2_M25 = BigInt(0x3e6) << 52n;
|
|
13
|
+
const f64 = new Float64Array(1);
|
|
14
|
+
const u64 = new BigUint64Array(f64.buffer);
|
|
15
|
+
function float64_as_uint64(d) {
|
|
16
|
+
f64[0] = d;
|
|
17
|
+
return u64[0];
|
|
18
|
+
}
|
|
19
|
+
function uint64_as_float64(v) {
|
|
20
|
+
u64[0] = v;
|
|
21
|
+
return f64[0];
|
|
22
|
+
}
|
|
23
|
+
/* binary16 bits -> double */
|
|
24
|
+
export function fromfp16(v) {
|
|
25
|
+
let v1 = v & 0x7fff;
|
|
26
|
+
if (v1 >= 0x7c00)
|
|
27
|
+
v1 += 0x1f8000; /* NaN or infinity */
|
|
28
|
+
const d = uint64_as_float64((BigInt(v >> 15) << 63n) | (BigInt(v1) << 42n));
|
|
29
|
+
return d * 2 ** 1008;
|
|
30
|
+
}
|
|
31
|
+
/* double -> binary16 bits, rounding to nearest with ties to even */
|
|
32
|
+
export function tofp16(d) {
|
|
33
|
+
let a = float64_as_uint64(d);
|
|
34
|
+
const sgn = Number(a >> 63n);
|
|
35
|
+
a &= 0x7fffffffffffffffn;
|
|
36
|
+
let v;
|
|
37
|
+
if (a > 0x7ff0000000000000n) {
|
|
38
|
+
/* nan */
|
|
39
|
+
v = 0x7c01;
|
|
40
|
+
}
|
|
41
|
+
else if (a < 0x3f10000000000000n) { /* 0x1p-14 */
|
|
42
|
+
/* subnormal f16 number or zero */
|
|
43
|
+
if (a <= P2_M25) { /* 0x1p-25 */
|
|
44
|
+
v = 0x0000; /* zero */
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
const shift = 1051n - (a >> 52n);
|
|
48
|
+
a = (1n << 52n) | (a & ((1n << 52n) - 1n));
|
|
49
|
+
const addend = ((a >> shift) & 1n) + ((1n << (shift - 1n)) - 1n);
|
|
50
|
+
v = Number((a + addend) >> shift);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
/* normal number or infinity */
|
|
55
|
+
a -= 0x3f00000000000000n; /* adjust the exponent */
|
|
56
|
+
/* round */
|
|
57
|
+
const addend = ((a >> 42n) & 1n) + ((1n << 41n) - 1n);
|
|
58
|
+
v = Number((a + addend) >> 42n);
|
|
59
|
+
/* overflow ? */
|
|
60
|
+
if (v > 0x7c00)
|
|
61
|
+
v = 0x7c00;
|
|
62
|
+
}
|
|
63
|
+
return v | (sgn << 15);
|
|
64
|
+
}
|
|
65
|
+
/* Math.f16round */
|
|
66
|
+
export function f16round(a) {
|
|
67
|
+
return fromfp16(tofp16(a));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=float16.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"float16.js","sourceRoot":"","sources":["../../src/builtins/float16.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * IEEE 754 binary16 conversions (port of tofp16 / fromfp16 in cutils.h).\n *\n * They are implemented here rather than borrowed from the host so that\n * Math.f16round and DataView.prototype.getFloat16 / setFloat16 behave the\n * same on every host, including hosts without Float16Array. The bit\n * patterns are QuickJS's: a NaN is stored as 0x7c01 with its sign.\n */\n\n/* the bits of 0x1p-25. Written without a hex bigint literal containing the\n digit 'e' (0x3e60000000000000n), which jseption's own lexer rejects, so\n that this file still parses with jseption (tests/strip-types.test.ts) */\nconst P2_M25 = BigInt(0x3e6) << 52n;\n\nconst f64 = new Float64Array(1);\nconst u64 = new BigUint64Array(f64.buffer);\n\nfunction float64_as_uint64(d: number): bigint {\n f64[0] = d;\n return u64[0];\n}\n\nfunction uint64_as_float64(v: bigint): number {\n u64[0] = v;\n return f64[0];\n}\n\n/* binary16 bits -> double */\nexport function fromfp16(v: number): number {\n let v1 = v & 0x7fff;\n if (v1 >= 0x7c00) v1 += 0x1f8000; /* NaN or infinity */\n const d = uint64_as_float64((BigInt(v >> 15) << 63n) | (BigInt(v1) << 42n));\n return d * 2 ** 1008;\n}\n\n/* double -> binary16 bits, rounding to nearest with ties to even */\nexport function tofp16(d: number): number {\n let a = float64_as_uint64(d);\n const sgn = Number(a >> 63n);\n a &= 0x7fffffffffffffffn;\n let v: number;\n if (a > 0x7ff0000000000000n) {\n /* nan */\n v = 0x7c01;\n } else if (a < 0x3f10000000000000n) { /* 0x1p-14 */\n /* subnormal f16 number or zero */\n if (a <= P2_M25) { /* 0x1p-25 */\n v = 0x0000; /* zero */\n } else {\n const shift = 1051n - (a >> 52n);\n a = (1n << 52n) | (a & ((1n << 52n) - 1n));\n const addend = ((a >> shift) & 1n) + ((1n << (shift - 1n)) - 1n);\n v = Number((a + addend) >> shift);\n }\n } else {\n /* normal number or infinity */\n a -= 0x3f00000000000000n; /* adjust the exponent */\n /* round */\n const addend = ((a >> 42n) & 1n) + ((1n << 41n) - 1n);\n v = Number((a + addend) >> 42n);\n /* overflow ? */\n if (v > 0x7c00) v = 0x7c00;\n }\n return v | (sgn << 15);\n}\n\n/* Math.f16round */\nexport function f16round(a: number): number {\n return fromfp16(tofp16(a));\n}\n"]}
|
|
@@ -54,10 +54,10 @@ export function js_function_constructor(ctx, new_target, argv, magic) {
|
|
|
54
54
|
class_id = 16 /* JSClassID.GENERATOR_FUNCTION */;
|
|
55
55
|
break;
|
|
56
56
|
case 2 /* JSFunctionKind.ASYNC */:
|
|
57
|
-
class_id =
|
|
57
|
+
class_id = 49 /* JSClassID.ASYNC_FUNCTION */;
|
|
58
58
|
break;
|
|
59
59
|
case 3 /* JSFunctionKind.ASYNC_GENERATOR */:
|
|
60
|
-
class_id =
|
|
60
|
+
class_id = 53 /* JSClassID.ASYNC_GENERATOR_FUNCTION */;
|
|
61
61
|
break;
|
|
62
62
|
default:
|
|
63
63
|
class_id = 13 /* JSClassID.BYTECODE_FUNCTION */;
|
package/dist/builtins/index.js
CHANGED
|
@@ -21,6 +21,7 @@ import { JS_AddIntrinsicProxy } from "./proxy.js";
|
|
|
21
21
|
import { JS_AddIntrinsicTypedArrays } from "./typedarray.js";
|
|
22
22
|
import { JS_AddIntrinsicGlobal } from "./global.js";
|
|
23
23
|
import { JS_AddIntrinsicWeakRef } from "./weakref.js";
|
|
24
|
+
import { JS_AddIntrinsicIterator } from "./iterator.js";
|
|
24
25
|
/* %IteratorPrototype%[Symbol.iterator]() and %AsyncIteratorPrototype%[Symbol.asyncIterator]() */
|
|
25
26
|
function js_iterator_proto_iterator(ctx, this_val, argv) {
|
|
26
27
|
return this_val;
|
|
@@ -63,7 +64,7 @@ export function JS_AddIntrinsicBasicObjects(ctx) {
|
|
|
63
64
|
JS_DefinePropertyValue(ctx, ctx.async_iterator_proto, JS_ATOM_Symbol_asyncIterator, aiter_fn, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);
|
|
64
65
|
/* Array iterator */
|
|
65
66
|
ctx.array_iterator_proto = JS_NewObjectProto(ctx, ctx.iterator_proto);
|
|
66
|
-
ctx.class_proto[
|
|
67
|
+
ctx.class_proto[41 /* JSClassID.ARRAY_ITERATOR */] = ctx.array_iterator_proto;
|
|
67
68
|
JS_SetPropertyFunctionList(ctx, ctx.array_iterator_proto, js_array_iterator_proto_funcs);
|
|
68
69
|
}
|
|
69
70
|
export function JS_AddIntrinsicBaseObjects(ctx) {
|
|
@@ -72,6 +73,8 @@ export function JS_AddIntrinsicBaseObjects(ctx) {
|
|
|
72
73
|
JS_DefinePropertyValueStr(ctx, ctx.global_obj, 'globalThis', ctx.global_obj, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);
|
|
73
74
|
JS_AddIntrinsicObject(ctx);
|
|
74
75
|
JS_AddIntrinsicFunction(ctx);
|
|
76
|
+
/* Iterator (after Function, as in quickjs.c: its prototype is %IteratorPrototype%) */
|
|
77
|
+
JS_AddIntrinsicIterator(ctx);
|
|
75
78
|
JS_AddIntrinsicError(ctx);
|
|
76
79
|
JS_AddIntrinsicSymbol(ctx);
|
|
77
80
|
JS_AddIntrinsicArray(ctx);
|
|
@@ -102,7 +105,7 @@ export function JS_AddIntrinsicBaseObjects(ctx) {
|
|
|
102
105
|
}
|
|
103
106
|
/* Generator */
|
|
104
107
|
const gen_proto = JS_NewObjectProto(ctx, ctx.iterator_proto);
|
|
105
|
-
ctx.class_proto[
|
|
108
|
+
ctx.class_proto[44 /* JSClassID.GENERATOR */] = gen_proto;
|
|
106
109
|
ctx.generator_proto = gen_proto;
|
|
107
110
|
JS_SetPropertyFunctionList(ctx, gen_proto, js_generator_proto_funcs);
|
|
108
111
|
const gen_func_proto = JS_NewObjectProto(ctx, ctx.function_proto);
|
|
@@ -115,21 +118,21 @@ export function JS_AddIntrinsicBaseObjects(ctx) {
|
|
|
115
118
|
JS_AddIntrinsicPromise(ctx);
|
|
116
119
|
/* AsyncFunction */
|
|
117
120
|
const async_func_proto = JS_NewObjectProto(ctx, ctx.function_proto);
|
|
118
|
-
ctx.class_proto[
|
|
121
|
+
ctx.class_proto[49 /* JSClassID.ASYNC_FUNCTION */] = async_func_proto;
|
|
119
122
|
const async_ctor = JS_NewCFunctionMagic(ctx, js_function_constructor, 'AsyncFunction', 1, 5 /* JSCFunctionEnum.constructor_or_func_magic */, 2 /* JSFunctionKind.ASYNC */);
|
|
120
123
|
JS_SetPropertyFunctionList(ctx, async_func_proto, js_async_function_proto_funcs);
|
|
121
124
|
JS_SetConstructor2(ctx, async_ctor, async_func_proto, 0, JS_PROP_CONFIGURABLE);
|
|
122
125
|
/* AsyncIteratorPrototype / AsyncFromSyncIterator */
|
|
123
126
|
const afs_proto = JS_NewObjectProto(ctx, ctx.async_iterator_proto);
|
|
124
|
-
ctx.class_proto[
|
|
127
|
+
ctx.class_proto[52 /* JSClassID.ASYNC_FROM_SYNC_ITERATOR */] = afs_proto;
|
|
125
128
|
JS_SetPropertyFunctionList(ctx, afs_proto, js_async_from_sync_iterator_proto_funcs);
|
|
126
129
|
/* AsyncGenerator */
|
|
127
130
|
const agen_proto = JS_NewObjectProto(ctx, ctx.async_iterator_proto);
|
|
128
|
-
ctx.class_proto[
|
|
131
|
+
ctx.class_proto[54 /* JSClassID.ASYNC_GENERATOR */] = agen_proto;
|
|
129
132
|
ctx.async_generator_proto = agen_proto;
|
|
130
133
|
JS_SetPropertyFunctionList(ctx, agen_proto, js_async_generator_proto_funcs);
|
|
131
134
|
const agen_func_proto = JS_NewObjectProto(ctx, ctx.function_proto);
|
|
132
|
-
ctx.class_proto[
|
|
135
|
+
ctx.class_proto[53 /* JSClassID.ASYNC_GENERATOR_FUNCTION */] = agen_func_proto;
|
|
133
136
|
const agen_ctor = JS_NewCFunctionMagic(ctx, js_function_constructor, 'AsyncGeneratorFunction', 1, 5 /* JSCFunctionEnum.constructor_or_func_magic */, 3 /* JSFunctionKind.ASYNC_GENERATOR */);
|
|
134
137
|
JS_SetPropertyFunctionList(ctx, agen_func_proto, js_async_generator_function_proto_funcs);
|
|
135
138
|
JS_SetConstructor2(ctx, agen_func_proto, agen_proto, 0, JS_PROP_CONFIGURABLE);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builtins/index.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Intrinsic objects: port of JS_AddIntrinsicBasicObjects / JS_AddIntrinsicBaseObjects\n */\nimport * as Q from '../quickjs.ts';\nimport {\n JSContext, JSValue, JSObject, JSClassID, JSFunctionKind, JS_EXCEPTION, JS_IsException, JS_IsUndefined, JS_IsObject,\n JS_NewObjectProto, JS_NewObjectProtoClass, JS_NewCFunction3, JS_NewCFunction, JS_NewCFunctionMagic, JSCFunctionEnum,\n JS_DefinePropertyValue, JS_DefinePropertyValueStr, JS_PROP_WRITABLE, JS_PROP_CONFIGURABLE, JS_PROP_C_W_E,\n JS_ThrowTypeError, JS_SetPropertyFunctionList, JS_CFUNC_DEF, JS_CFUNC_MAGIC_DEF, JS_NATIVE_DEF,\n JS_PROP_STRING_DEF, JS_SetConstructor2, JS_PreventExtensions, JS_ATOM_Symbol_iterator,\n JS_ATOM_Symbol_asyncIterator, JS_ATOM_Symbol_toStringTag, JS_ATOM_length, JS_ATOM_name, JS_ATOM_values,\n JS_ATOM_Generator, JS_ATOM_prototype, JS_ATOM_constructor, JS_EvalThis, JS_GetProperty, JS_GetPropertyStr,\n JS_EVAL_TYPE_INDIRECT, hooks, JS_NewAtom, JS_ATOM_Symbol_hasInstance, JS_PROP_ENUMERABLE,\n} from '../quickjs.ts';\nimport {\n js_generator_proto_funcs, js_generator_function_proto_funcs, js_async_function_proto_funcs,\n js_async_generator_proto_funcs, js_async_generator_function_proto_funcs, js_async_from_sync_iterator_proto_funcs,\n} from '../interpreter.ts';\nimport { HOST_ARRAY_ITERATOR_PROTO, fix_iter_result_entries } from './native.ts';\nimport { JS_AddIntrinsicError } from './error.ts';\nimport { JS_AddIntrinsicSymbol } from './symbol.ts';\nimport { JS_AddIntrinsicFunction, js_function_proto, js_function_constructor, js_function_proto_caller } from './function.ts';\nimport { JS_AddIntrinsicPromise } from './promise.ts';\nimport { JS_AddIntrinsicObject } from './object.ts';\nimport { JS_AddIntrinsicArray } from './array.ts';\nimport { JS_AddIntrinsicNumber } from './number.ts';\nimport { JS_AddIntrinsicBoolean } from './boolean.ts';\nimport { JS_AddIntrinsicString } from './string.ts';\nimport { JS_AddIntrinsicMath } from './math.ts';\nimport { JS_AddIntrinsicJSON } from './json.ts';\nimport { JS_AddIntrinsicReflect } from './reflect.ts';\nimport { JS_AddIntrinsicMapSet } from './mapset.ts';\nimport { JS_AddIntrinsicRegExp } from './regexp.ts';\nimport { JS_AddIntrinsicDate } from './date.ts';\nimport { JS_AddIntrinsicBigInt } from './bigint.ts';\nimport { JS_AddIntrinsicProxy } from './proxy.ts';\nimport { JS_AddIntrinsicTypedArrays } from './typedarray.ts';\nimport { JS_AddIntrinsicGlobal } from './global.ts';\nimport { JS_AddIntrinsicWeakRef } from './weakref.ts';\n\n/* %IteratorPrototype%[Symbol.iterator]() and %AsyncIteratorPrototype%[Symbol.asyncIterator]() */\nfunction js_iterator_proto_iterator(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n return this_val;\n}\n\n/* Array iterator: the host array iterators (created by the borrowed\n Array.prototype.values/keys/entries and the typed array equivalents) are\n re-prototyped to this prototype, whose `next` is the host one */\nconst js_array_iterator_proto_funcs = [\n JS_NATIVE_DEF('next', 0, (HOST_ARRAY_ITERATOR_PROTO as any).next, fix_iter_result_entries),\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'Array Iterator', JS_PROP_CONFIGURABLE),\n];\n\nfunction js_throw_type_error(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n return JS_ThrowTypeError(ctx, 'invalid property access');\n}\n\n/* indirect eval */\nfunction js_global_eval(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const val = argv[0];\n if (typeof val !== 'string') return val;\n return JS_EvalThis(ctx, ctx.global_obj, val, '<input>', JS_EVAL_TYPE_INDIRECT);\n}\n\nexport function JS_AddIntrinsicBasicObjects(ctx: JSContext): void {\n const proto = ctx.class_proto[JSClassID.OBJECT]!;\n /* Function.prototype is itself a (C) function */\n ctx.function_proto = JS_NewCFunction3(ctx, js_function_proto, '', 0, JSCFunctionEnum.generic, 0, proto) as JSObject;\n /* 'caller' and 'arguments' accessors throw in strict mode */\n ctx.throw_type_error = JS_NewCFunction(ctx, js_throw_type_error, '', 0) as JSObject;\n JS_PreventExtensions(ctx, ctx.throw_type_error);\n /* ArrayPrototype (needed early for JS_NewArray): an array exotic object */\n ctx.class_proto[JSClassID.ARRAY] = JS_NewObjectProtoClass(ctx, proto, JSClassID.ARRAY) as JSObject;\n /* XXX: could use a specific class for the arguments prototype */\n ctx.class_proto[JSClassID.ARGUMENTS] = ctx.class_proto[JSClassID.OBJECT];\n ctx.class_proto[JSClassID.MAPPED_ARGUMENTS] = ctx.class_proto[JSClassID.OBJECT];\n /* iterator prototypes */\n ctx.iterator_proto = JS_NewObjectProto(ctx, proto) as JSObject;\n const iter_fn = JS_NewCFunction3(ctx, js_iterator_proto_iterator, '[Symbol.iterator]', 0, JSCFunctionEnum.generic, 0, ctx.function_proto);\n JS_DefinePropertyValue(ctx, ctx.iterator_proto, JS_ATOM_Symbol_iterator, iter_fn, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n ctx.async_iterator_proto = JS_NewObjectProto(ctx, proto) as JSObject;\n const aiter_fn = JS_NewCFunction3(ctx, js_iterator_proto_iterator, '[Symbol.asyncIterator]', 0, JSCFunctionEnum.generic, 0, ctx.function_proto);\n JS_DefinePropertyValue(ctx, ctx.async_iterator_proto, JS_ATOM_Symbol_asyncIterator, aiter_fn, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n /* Array iterator */\n ctx.array_iterator_proto = JS_NewObjectProto(ctx, ctx.iterator_proto) as JSObject;\n ctx.class_proto[JSClassID.ARRAY_ITERATOR] = ctx.array_iterator_proto;\n JS_SetPropertyFunctionList(ctx, ctx.array_iterator_proto, js_array_iterator_proto_funcs);\n}\n\nexport function JS_AddIntrinsicBaseObjects(ctx: JSContext): void {\n JS_AddIntrinsicBasicObjects(ctx);\n\n /* global object: globalThis */\n JS_DefinePropertyValueStr(ctx, ctx.global_obj, 'globalThis', ctx.global_obj, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n\n JS_AddIntrinsicObject(ctx);\n JS_AddIntrinsicFunction(ctx);\n JS_AddIntrinsicError(ctx);\n JS_AddIntrinsicSymbol(ctx);\n JS_AddIntrinsicArray(ctx);\n\n /* Array.prototype.values (=== Array.prototype[Symbol.iterator]) */\n ctx.array_proto_values = JS_GetProperty(ctx, ctx.class_proto[JSClassID.ARRAY]!, JS_ATOM_values);\n\n JS_AddIntrinsicNumber(ctx);\n JS_AddIntrinsicBoolean(ctx);\n JS_AddIntrinsicString(ctx);\n JS_AddIntrinsicMath(ctx);\n JS_AddIntrinsicJSON(ctx);\n JS_AddIntrinsicReflect(ctx);\n JS_AddIntrinsicMapSet(ctx);\n JS_AddIntrinsicRegExp(ctx);\n JS_AddIntrinsicDate(ctx);\n JS_AddIntrinsicBigInt(ctx);\n JS_AddIntrinsicProxy(ctx);\n JS_AddIntrinsicTypedArrays(ctx);\n JS_AddIntrinsicWeakRef(ctx);\n\n /* eval */\n const eval_obj = JS_NewCFunction(ctx, js_global_eval, 'eval', 1);\n JS_DefinePropertyValueStr(ctx, ctx.global_obj, 'eval', eval_obj, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n ctx.eval_obj = eval_obj;\n\n JS_AddIntrinsicGlobal(ctx);\n /* Number.parseInt / Number.parseFloat are the global functions */\n const number_ctor = JS_GetPropertyStr(ctx, ctx.global_obj, 'Number');\n for (const name of ['parseInt', 'parseFloat']) {\n JS_DefinePropertyValueStr(ctx, number_ctor, name, JS_GetPropertyStr(ctx, ctx.global_obj, name), JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n }\n\n /* Generator */\n const gen_proto = JS_NewObjectProto(ctx, ctx.iterator_proto) as JSObject;\n ctx.class_proto[JSClassID.GENERATOR] = gen_proto;\n ctx.generator_proto = gen_proto;\n JS_SetPropertyFunctionList(ctx, gen_proto, js_generator_proto_funcs);\n const gen_func_proto = JS_NewObjectProto(ctx, ctx.function_proto) as JSObject;\n ctx.class_proto[JSClassID.GENERATOR_FUNCTION] = gen_func_proto;\n const gen_ctor = JS_NewCFunctionMagic(ctx, js_function_constructor, 'GeneratorFunction', 1, JSCFunctionEnum.constructor_or_func_magic, JSFunctionKind.GENERATOR);\n JS_SetPropertyFunctionList(ctx, gen_func_proto, js_generator_function_proto_funcs);\n JS_SetConstructor2(ctx, gen_func_proto, gen_proto, 0, JS_PROP_CONFIGURABLE);\n JS_SetConstructor2(ctx, gen_ctor, gen_func_proto, 0, JS_PROP_CONFIGURABLE);\n\n /* Promise */\n JS_AddIntrinsicPromise(ctx);\n\n /* AsyncFunction */\n const async_func_proto = JS_NewObjectProto(ctx, ctx.function_proto) as JSObject;\n ctx.class_proto[JSClassID.ASYNC_FUNCTION] = async_func_proto;\n const async_ctor = JS_NewCFunctionMagic(ctx, js_function_constructor, 'AsyncFunction', 1, JSCFunctionEnum.constructor_or_func_magic, JSFunctionKind.ASYNC);\n JS_SetPropertyFunctionList(ctx, async_func_proto, js_async_function_proto_funcs);\n JS_SetConstructor2(ctx, async_ctor, async_func_proto, 0, JS_PROP_CONFIGURABLE);\n\n /* AsyncIteratorPrototype / AsyncFromSyncIterator */\n const afs_proto = JS_NewObjectProto(ctx, ctx.async_iterator_proto) as JSObject;\n ctx.class_proto[JSClassID.ASYNC_FROM_SYNC_ITERATOR] = afs_proto;\n JS_SetPropertyFunctionList(ctx, afs_proto, js_async_from_sync_iterator_proto_funcs);\n\n /* AsyncGenerator */\n const agen_proto = JS_NewObjectProto(ctx, ctx.async_iterator_proto) as JSObject;\n ctx.class_proto[JSClassID.ASYNC_GENERATOR] = agen_proto;\n ctx.async_generator_proto = agen_proto;\n JS_SetPropertyFunctionList(ctx, agen_proto, js_async_generator_proto_funcs);\n const agen_func_proto = JS_NewObjectProto(ctx, ctx.function_proto) as JSObject;\n ctx.class_proto[JSClassID.ASYNC_GENERATOR_FUNCTION] = agen_func_proto;\n const agen_ctor = JS_NewCFunctionMagic(ctx, js_function_constructor, 'AsyncGeneratorFunction', 1, JSCFunctionEnum.constructor_or_func_magic, JSFunctionKind.ASYNC_GENERATOR);\n JS_SetPropertyFunctionList(ctx, agen_func_proto, js_async_generator_function_proto_funcs);\n JS_SetConstructor2(ctx, agen_func_proto, agen_proto, 0, JS_PROP_CONFIGURABLE);\n JS_SetConstructor2(ctx, agen_ctor, agen_func_proto, 0, JS_PROP_CONFIGURABLE);\n}\n\nhooks.JS_AddIntrinsicBaseObjects = JS_AddIntrinsicBaseObjects;\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builtins/index.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Intrinsic objects: port of JS_AddIntrinsicBasicObjects / JS_AddIntrinsicBaseObjects\n */\nimport * as Q from '../quickjs.ts';\nimport {\n JSContext, JSValue, JSObject, JSClassID, JSFunctionKind, JS_EXCEPTION, JS_IsException, JS_IsUndefined, JS_IsObject,\n JS_NewObjectProto, JS_NewObjectProtoClass, JS_NewCFunction3, JS_NewCFunction, JS_NewCFunctionMagic, JSCFunctionEnum,\n JS_DefinePropertyValue, JS_DefinePropertyValueStr, JS_PROP_WRITABLE, JS_PROP_CONFIGURABLE, JS_PROP_C_W_E,\n JS_ThrowTypeError, JS_SetPropertyFunctionList, JS_CFUNC_DEF, JS_CFUNC_MAGIC_DEF, JS_NATIVE_DEF,\n JS_PROP_STRING_DEF, JS_SetConstructor2, JS_PreventExtensions, JS_ATOM_Symbol_iterator,\n JS_ATOM_Symbol_asyncIterator, JS_ATOM_Symbol_toStringTag, JS_ATOM_length, JS_ATOM_name, JS_ATOM_values,\n JS_ATOM_Generator, JS_ATOM_prototype, JS_ATOM_constructor, JS_EvalThis, JS_GetProperty, JS_GetPropertyStr,\n JS_EVAL_TYPE_INDIRECT, hooks, JS_NewAtom, JS_ATOM_Symbol_hasInstance, JS_PROP_ENUMERABLE,\n} from '../quickjs.ts';\nimport {\n js_generator_proto_funcs, js_generator_function_proto_funcs, js_async_function_proto_funcs,\n js_async_generator_proto_funcs, js_async_generator_function_proto_funcs, js_async_from_sync_iterator_proto_funcs,\n} from '../interpreter.ts';\nimport { HOST_ARRAY_ITERATOR_PROTO, fix_iter_result_entries } from './native.ts';\nimport { JS_AddIntrinsicError } from './error.ts';\nimport { JS_AddIntrinsicSymbol } from './symbol.ts';\nimport { JS_AddIntrinsicFunction, js_function_proto, js_function_constructor, js_function_proto_caller } from './function.ts';\nimport { JS_AddIntrinsicPromise } from './promise.ts';\nimport { JS_AddIntrinsicObject } from './object.ts';\nimport { JS_AddIntrinsicArray } from './array.ts';\nimport { JS_AddIntrinsicNumber } from './number.ts';\nimport { JS_AddIntrinsicBoolean } from './boolean.ts';\nimport { JS_AddIntrinsicString } from './string.ts';\nimport { JS_AddIntrinsicMath } from './math.ts';\nimport { JS_AddIntrinsicJSON } from './json.ts';\nimport { JS_AddIntrinsicReflect } from './reflect.ts';\nimport { JS_AddIntrinsicMapSet } from './mapset.ts';\nimport { JS_AddIntrinsicRegExp } from './regexp.ts';\nimport { JS_AddIntrinsicDate } from './date.ts';\nimport { JS_AddIntrinsicBigInt } from './bigint.ts';\nimport { JS_AddIntrinsicProxy } from './proxy.ts';\nimport { JS_AddIntrinsicTypedArrays } from './typedarray.ts';\nimport { JS_AddIntrinsicGlobal } from './global.ts';\nimport { JS_AddIntrinsicWeakRef } from './weakref.ts';\nimport { JS_AddIntrinsicIterator } from './iterator.ts';\n\n/* %IteratorPrototype%[Symbol.iterator]() and %AsyncIteratorPrototype%[Symbol.asyncIterator]() */\nfunction js_iterator_proto_iterator(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n return this_val;\n}\n\n/* Array iterator: the host array iterators (created by the borrowed\n Array.prototype.values/keys/entries and the typed array equivalents) are\n re-prototyped to this prototype, whose `next` is the host one */\nconst js_array_iterator_proto_funcs = [\n JS_NATIVE_DEF('next', 0, (HOST_ARRAY_ITERATOR_PROTO as any).next, fix_iter_result_entries),\n JS_PROP_STRING_DEF(JS_ATOM_Symbol_toStringTag, 'Array Iterator', JS_PROP_CONFIGURABLE),\n];\n\nfunction js_throw_type_error(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n return JS_ThrowTypeError(ctx, 'invalid property access');\n}\n\n/* indirect eval */\nfunction js_global_eval(ctx: JSContext, this_val: JSValue, argv: JSValue[]): JSValue {\n const val = argv[0];\n if (typeof val !== 'string') return val;\n return JS_EvalThis(ctx, ctx.global_obj, val, '<input>', JS_EVAL_TYPE_INDIRECT);\n}\n\nexport function JS_AddIntrinsicBasicObjects(ctx: JSContext): void {\n const proto = ctx.class_proto[JSClassID.OBJECT]!;\n /* Function.prototype is itself a (C) function */\n ctx.function_proto = JS_NewCFunction3(ctx, js_function_proto, '', 0, JSCFunctionEnum.generic, 0, proto) as JSObject;\n /* 'caller' and 'arguments' accessors throw in strict mode */\n ctx.throw_type_error = JS_NewCFunction(ctx, js_throw_type_error, '', 0) as JSObject;\n JS_PreventExtensions(ctx, ctx.throw_type_error);\n /* ArrayPrototype (needed early for JS_NewArray): an array exotic object */\n ctx.class_proto[JSClassID.ARRAY] = JS_NewObjectProtoClass(ctx, proto, JSClassID.ARRAY) as JSObject;\n /* XXX: could use a specific class for the arguments prototype */\n ctx.class_proto[JSClassID.ARGUMENTS] = ctx.class_proto[JSClassID.OBJECT];\n ctx.class_proto[JSClassID.MAPPED_ARGUMENTS] = ctx.class_proto[JSClassID.OBJECT];\n /* iterator prototypes */\n ctx.iterator_proto = JS_NewObjectProto(ctx, proto) as JSObject;\n const iter_fn = JS_NewCFunction3(ctx, js_iterator_proto_iterator, '[Symbol.iterator]', 0, JSCFunctionEnum.generic, 0, ctx.function_proto);\n JS_DefinePropertyValue(ctx, ctx.iterator_proto, JS_ATOM_Symbol_iterator, iter_fn, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n ctx.async_iterator_proto = JS_NewObjectProto(ctx, proto) as JSObject;\n const aiter_fn = JS_NewCFunction3(ctx, js_iterator_proto_iterator, '[Symbol.asyncIterator]', 0, JSCFunctionEnum.generic, 0, ctx.function_proto);\n JS_DefinePropertyValue(ctx, ctx.async_iterator_proto, JS_ATOM_Symbol_asyncIterator, aiter_fn, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n /* Array iterator */\n ctx.array_iterator_proto = JS_NewObjectProto(ctx, ctx.iterator_proto) as JSObject;\n ctx.class_proto[JSClassID.ARRAY_ITERATOR] = ctx.array_iterator_proto;\n JS_SetPropertyFunctionList(ctx, ctx.array_iterator_proto, js_array_iterator_proto_funcs);\n}\n\nexport function JS_AddIntrinsicBaseObjects(ctx: JSContext): void {\n JS_AddIntrinsicBasicObjects(ctx);\n\n /* global object: globalThis */\n JS_DefinePropertyValueStr(ctx, ctx.global_obj, 'globalThis', ctx.global_obj, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n\n JS_AddIntrinsicObject(ctx);\n JS_AddIntrinsicFunction(ctx);\n /* Iterator (after Function, as in quickjs.c: its prototype is %IteratorPrototype%) */\n JS_AddIntrinsicIterator(ctx);\n JS_AddIntrinsicError(ctx);\n JS_AddIntrinsicSymbol(ctx);\n JS_AddIntrinsicArray(ctx);\n\n /* Array.prototype.values (=== Array.prototype[Symbol.iterator]) */\n ctx.array_proto_values = JS_GetProperty(ctx, ctx.class_proto[JSClassID.ARRAY]!, JS_ATOM_values);\n\n JS_AddIntrinsicNumber(ctx);\n JS_AddIntrinsicBoolean(ctx);\n JS_AddIntrinsicString(ctx);\n JS_AddIntrinsicMath(ctx);\n JS_AddIntrinsicJSON(ctx);\n JS_AddIntrinsicReflect(ctx);\n JS_AddIntrinsicMapSet(ctx);\n JS_AddIntrinsicRegExp(ctx);\n JS_AddIntrinsicDate(ctx);\n JS_AddIntrinsicBigInt(ctx);\n JS_AddIntrinsicProxy(ctx);\n JS_AddIntrinsicTypedArrays(ctx);\n JS_AddIntrinsicWeakRef(ctx);\n\n /* eval */\n const eval_obj = JS_NewCFunction(ctx, js_global_eval, 'eval', 1);\n JS_DefinePropertyValueStr(ctx, ctx.global_obj, 'eval', eval_obj, JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n ctx.eval_obj = eval_obj;\n\n JS_AddIntrinsicGlobal(ctx);\n /* Number.parseInt / Number.parseFloat are the global functions */\n const number_ctor = JS_GetPropertyStr(ctx, ctx.global_obj, 'Number');\n for (const name of ['parseInt', 'parseFloat']) {\n JS_DefinePropertyValueStr(ctx, number_ctor, name, JS_GetPropertyStr(ctx, ctx.global_obj, name), JS_PROP_WRITABLE | JS_PROP_CONFIGURABLE);\n }\n\n /* Generator */\n const gen_proto = JS_NewObjectProto(ctx, ctx.iterator_proto) as JSObject;\n ctx.class_proto[JSClassID.GENERATOR] = gen_proto;\n ctx.generator_proto = gen_proto;\n JS_SetPropertyFunctionList(ctx, gen_proto, js_generator_proto_funcs);\n const gen_func_proto = JS_NewObjectProto(ctx, ctx.function_proto) as JSObject;\n ctx.class_proto[JSClassID.GENERATOR_FUNCTION] = gen_func_proto;\n const gen_ctor = JS_NewCFunctionMagic(ctx, js_function_constructor, 'GeneratorFunction', 1, JSCFunctionEnum.constructor_or_func_magic, JSFunctionKind.GENERATOR);\n JS_SetPropertyFunctionList(ctx, gen_func_proto, js_generator_function_proto_funcs);\n JS_SetConstructor2(ctx, gen_func_proto, gen_proto, 0, JS_PROP_CONFIGURABLE);\n JS_SetConstructor2(ctx, gen_ctor, gen_func_proto, 0, JS_PROP_CONFIGURABLE);\n\n /* Promise */\n JS_AddIntrinsicPromise(ctx);\n\n /* AsyncFunction */\n const async_func_proto = JS_NewObjectProto(ctx, ctx.function_proto) as JSObject;\n ctx.class_proto[JSClassID.ASYNC_FUNCTION] = async_func_proto;\n const async_ctor = JS_NewCFunctionMagic(ctx, js_function_constructor, 'AsyncFunction', 1, JSCFunctionEnum.constructor_or_func_magic, JSFunctionKind.ASYNC);\n JS_SetPropertyFunctionList(ctx, async_func_proto, js_async_function_proto_funcs);\n JS_SetConstructor2(ctx, async_ctor, async_func_proto, 0, JS_PROP_CONFIGURABLE);\n\n /* AsyncIteratorPrototype / AsyncFromSyncIterator */\n const afs_proto = JS_NewObjectProto(ctx, ctx.async_iterator_proto) as JSObject;\n ctx.class_proto[JSClassID.ASYNC_FROM_SYNC_ITERATOR] = afs_proto;\n JS_SetPropertyFunctionList(ctx, afs_proto, js_async_from_sync_iterator_proto_funcs);\n\n /* AsyncGenerator */\n const agen_proto = JS_NewObjectProto(ctx, ctx.async_iterator_proto) as JSObject;\n ctx.class_proto[JSClassID.ASYNC_GENERATOR] = agen_proto;\n ctx.async_generator_proto = agen_proto;\n JS_SetPropertyFunctionList(ctx, agen_proto, js_async_generator_proto_funcs);\n const agen_func_proto = JS_NewObjectProto(ctx, ctx.function_proto) as JSObject;\n ctx.class_proto[JSClassID.ASYNC_GENERATOR_FUNCTION] = agen_func_proto;\n const agen_ctor = JS_NewCFunctionMagic(ctx, js_function_constructor, 'AsyncGeneratorFunction', 1, JSCFunctionEnum.constructor_or_func_magic, JSFunctionKind.ASYNC_GENERATOR);\n JS_SetPropertyFunctionList(ctx, agen_func_proto, js_async_generator_function_proto_funcs);\n JS_SetConstructor2(ctx, agen_func_proto, agen_proto, 0, JS_PROP_CONFIGURABLE);\n JS_SetConstructor2(ctx, agen_ctor, agen_func_proto, 0, JS_PROP_CONFIGURABLE);\n}\n\nhooks.JS_AddIntrinsicBaseObjects = JS_AddIntrinsicBaseObjects;\n"]}
|