@scriptc/cli-darwin-arm64 0.2.2 → 0.2.4
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/dist/THIRD_PARTY_NOTICES +1 -1
- package/dist/bin/scriptc +0 -0
- package/dist/bin/scriptc.json +1 -1
- package/dist/lib/declarations/scriptc-node-fallback.d.ts +99 -27
- package/dist/lib/llvm/bin/scriptc-llvm-codegen +0 -0
- package/dist/lib/llvm/package.json +1 -1
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_util_compare.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_util_style.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_island.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_util_compare.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_util_style.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_web.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_util_compare.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_util_style.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_array.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_assert.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_async.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bigint.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bytes_io.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_cycle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_events.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_exception.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_file_handle.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_island.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_json.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_lib.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_map.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_node_builtin.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_regex.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_string.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_symbol.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_url.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_url_params.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_util_compare.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_util_style.o +0 -0
- package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_web.o +0 -0
- package/dist/lib/runtime-darwin-arm64/package.json +1 -1
- package/dist/lib/runtime-darwin-arm64/runtime-pack.json +399 -273
- package/dist/lib/runtime-sources/package.json +1 -1
- package/dist/lib/runtime-sources/src/scr_array.c +55 -34
- package/dist/lib/runtime-sources/src/scr_assert.c +26 -0
- package/dist/lib/runtime-sources/src/scr_async.c +44 -0
- package/dist/lib/runtime-sources/src/scr_bigint.c +15 -0
- package/dist/lib/runtime-sources/src/scr_bytes_io.c +305 -48
- package/dist/lib/runtime-sources/src/scr_cycle.c +84 -60
- package/dist/lib/runtime-sources/src/scr_events.c +9 -0
- package/dist/lib/runtime-sources/src/scr_exception.c +1 -0
- package/dist/lib/runtime-sources/src/scr_file_handle.c +11 -0
- package/dist/lib/runtime-sources/src/scr_island.c +1001 -417
- package/dist/lib/runtime-sources/src/scr_island_manifest.h +11 -7
- package/dist/lib/runtime-sources/src/scr_json.c +150 -13
- package/dist/lib/runtime-sources/src/scr_lib.c +424 -28
- package/dist/lib/runtime-sources/src/scr_map.c +236 -40
- package/dist/lib/runtime-sources/src/scr_node_builtin.c +78 -0
- package/dist/lib/runtime-sources/src/scr_regex.c +112 -8
- package/dist/lib/runtime-sources/src/scr_runtime.h +108 -14
- package/dist/lib/runtime-sources/src/scr_string.c +29 -0
- package/dist/lib/runtime-sources/src/scr_symbol.c +5 -0
- package/dist/lib/runtime-sources/src/scr_system_errors.h +573 -0
- package/dist/lib/runtime-sources/src/scr_url.c +515 -59
- package/dist/lib/runtime-sources/src/scr_url_internal.h +6 -0
- package/dist/lib/runtime-sources/src/scr_url_params.c +10 -0
- package/dist/lib/runtime-sources/src/scr_util_compare.c +222 -0
- package/dist/lib/runtime-sources/src/scr_util_style.c +337 -0
- package/dist/lib/runtime-sources/src/scr_web.c +720 -238
- package/package.json +1 -1
|
@@ -50,12 +50,12 @@ static const struct {
|
|
|
50
50
|
{"node:tls",
|
|
51
51
|
"connect,createServer,createSecureContext,TLSSocket,rootCertificates"},
|
|
52
52
|
{"node:diagnostics_channel",
|
|
53
|
-
"channel,subscribe,unsubscribe,hasSubscribers,tracingChannel"},
|
|
53
|
+
"channel,subscribe,unsubscribe,hasSubscribers,tracingChannel,Channel"},
|
|
54
54
|
{"node:module",
|
|
55
55
|
"createRequire,builtinModules,isBuiltin,syncBuiltinESMExports,register,findSourceMap"},
|
|
56
56
|
{"node:url",
|
|
57
|
-
"URL,URLSearchParams,fileURLToPath,pathToFileURL,parse,format,resolve
|
|
58
|
-
"
|
|
57
|
+
"URL,URLSearchParams,fileURLToPath,fileURLToPathBuffer,pathToFileURL,parse,format,resolve"
|
|
58
|
+
",domainToASCII,domainToUnicode,urlToHttpOptions"},
|
|
59
59
|
{"node:buffer",
|
|
60
60
|
"Buffer,SlowBuffer,INSPECT_MAX_BYTES,kMaxLength,kStringMaxLength,constants,isAscii,isUtf8"
|
|
61
61
|
",atob,btoa,Blob,File,transcode,resolveObjectURL"},
|
|
@@ -130,7 +130,10 @@ static const struct {
|
|
|
130
130
|
{"node:stream/consumers",
|
|
131
131
|
"text,buffer,arrayBuffer,json,blob"},
|
|
132
132
|
{"node:stream/web",
|
|
133
|
-
"ReadableStream,TransformStream,TextDecoderStream"
|
|
133
|
+
"ReadableStream,TransformStream,TextDecoderStream,WritableStream,WritableStreamDefaultWri"
|
|
134
|
+
"ter,WritableStreamDefaultController,CountQueuingStrategy,ByteLengthQueuingStrategy,Trans"
|
|
135
|
+
"formStreamDefaultController,TextEncoderStream,ReadableStreamDefaultReader,ReadableStream"
|
|
136
|
+
"DefaultController"},
|
|
134
137
|
{"node:crypto",
|
|
135
138
|
"createHash,createHmac,hash,Hash,Hmac,randomBytes,randomFillSync,randomFill,randomInt,ran"
|
|
136
139
|
"domUUID,getRandomValues,timingSafeEqual,pbkdf2,pbkdf2Sync,getHashes,getCiphers,getCurves"
|
|
@@ -141,9 +144,10 @@ static const struct {
|
|
|
141
144
|
"c,X509Certificate,Certificate,checkPrime,checkPrimeSync,generatePrime,generatePrimeSync,"
|
|
142
145
|
"secureHeapUsed,setEngine,setFips,getFips"},
|
|
143
146
|
{"node:util",
|
|
144
|
-
"
|
|
145
|
-
"
|
|
146
|
-
"
|
|
147
|
+
"getSystemErrorName,getSystemErrorMessage,getSystemErrorMap,parseEnv,format,formatWithOpt"
|
|
148
|
+
"ions,inspect,inherits,promisify,callbackify,deprecate,debuglog,debug,types,isDeepStrictE"
|
|
149
|
+
"qual,stripVTControlCharacters,styleText,parseArgs,toUSVString,_extend,TextEncoder,TextDe"
|
|
150
|
+
"coder,MIMEType,MIMEParams,isArray"},
|
|
147
151
|
{"node:util/types",
|
|
148
152
|
"isAnyArrayBuffer,isArrayBufferView,isArgumentsObject,isArrayBuffer,isAsyncFunction,isBig"
|
|
149
153
|
"Int64Array,isBigUint64Array,isBooleanObject,isBoxedPrimitive,isBigIntObject,isCryptoKey,"
|
|
@@ -57,6 +57,7 @@ static void scr_json_oom(void) {
|
|
|
57
57
|
|
|
58
58
|
static SCR_TL ScrDyn *scr_iterator_symbol;
|
|
59
59
|
static SCR_TL ScrDyn *scr_async_iterator_symbol;
|
|
60
|
+
static SCR_TL ScrDyn *scr_to_primitive_symbol;
|
|
60
61
|
static bool scr_dyn_generator(const ScrDyn *value) {
|
|
61
62
|
return value && value->kind == SCR_DYN_TYPED_REF &&
|
|
62
63
|
(!strncmp(value->v.typed_ref.type_key, "generator<", 10) || !strncmp(value->v.typed_ref.type_key, "async-generator<", 16));
|
|
@@ -104,6 +105,17 @@ static void scr_async_iterator_symbol_cleanup(void) {
|
|
|
104
105
|
scr_async_iterator_symbol = NULL;
|
|
105
106
|
}
|
|
106
107
|
|
|
108
|
+
static void scr_to_primitive_symbol_cleanup(void) {
|
|
109
|
+
scr_dyn_release(scr_to_primitive_symbol);
|
|
110
|
+
scr_to_primitive_symbol = NULL;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
void scr_dyn_install_to_primitive_symbol(ScrDyn *key) {
|
|
114
|
+
if (scr_to_primitive_symbol) return;
|
|
115
|
+
scr_to_primitive_symbol = scr_dyn_retain(key);
|
|
116
|
+
scr_atexit(scr_to_primitive_symbol_cleanup);
|
|
117
|
+
}
|
|
118
|
+
|
|
107
119
|
void scr_dyn_install_async_iterator_symbol(ScrDyn *key) {
|
|
108
120
|
if (scr_async_iterator_symbol) return;
|
|
109
121
|
scr_async_iterator_symbol = scr_dyn_retain(key);
|
|
@@ -1027,12 +1039,20 @@ ScrDyn *scr_dyn_undefined(void) {
|
|
|
1027
1039
|
return &undef;
|
|
1028
1040
|
}
|
|
1029
1041
|
|
|
1030
|
-
|
|
1042
|
+
/* Primitive nodes have no mutable properties or observable box identity.
|
|
1043
|
+
* As with undefined, SIZE_MAX keeps them out of RC and cycle bookkeeping;
|
|
1044
|
+
* callers retain the ordinary owned-result and ownership-transfer contracts. */
|
|
1045
|
+
ScrDyn *scr_dyn_new_null(void) {
|
|
1046
|
+
static ScrDyn value = { .rc = SIZE_MAX, .kind = SCR_DYN_NULL };
|
|
1047
|
+
return &value;
|
|
1048
|
+
}
|
|
1031
1049
|
|
|
1032
1050
|
ScrDyn *scr_dyn_new_bool(bool b) {
|
|
1033
|
-
ScrDyn
|
|
1034
|
-
|
|
1035
|
-
|
|
1051
|
+
static ScrDyn values[2] = {
|
|
1052
|
+
{ .rc = SIZE_MAX, .kind = SCR_DYN_BOOL, .v.b = false },
|
|
1053
|
+
{ .rc = SIZE_MAX, .kind = SCR_DYN_BOOL, .v.b = true },
|
|
1054
|
+
};
|
|
1055
|
+
return &values[b ? 1 : 0];
|
|
1036
1056
|
}
|
|
1037
1057
|
|
|
1038
1058
|
ScrDyn *scr_dyn_new_bigint(ScrBigInt *value) {
|
|
@@ -1902,6 +1922,56 @@ bool scr_dyn_typed_array_is(const ScrDyn *d, int elem) {
|
|
|
1902
1922
|
return d && d->kind == SCR_DYN_BYTES && !d->v.bytes->is_data_view && d->v.bytes->elem == (ScrBytesElem)elem;
|
|
1903
1923
|
}
|
|
1904
1924
|
|
|
1925
|
+
/* Node util.types reads internal brands, never user properties or prototypes. */
|
|
1926
|
+
bool scr_dyn_util_type_is(const ScrDyn *value, const ScrStr *probe) {
|
|
1927
|
+
if (!value) return false;
|
|
1928
|
+
if (value->kind == SCR_DYN_JSVAL) return scr_dyn_jsval_ops()->type_probe(value->v.jsval.cell, probe);
|
|
1929
|
+
#define PROBE(name) (probe->len == sizeof(name) - 1 && memcmp(probe->data, name, sizeof(name) - 1) == 0)
|
|
1930
|
+
if (PROBE("isAnyArrayBuffer") || PROBE("isArrayBuffer")) return scr_array_buffer_is(value);
|
|
1931
|
+
if (PROBE("isArrayBufferView")) return value->kind == SCR_DYN_BYTES;
|
|
1932
|
+
if (PROBE("isDataView")) return value->kind == SCR_DYN_BYTES && value->v.bytes->is_data_view;
|
|
1933
|
+
if (PROBE("isTypedArray")) return value->kind == SCR_DYN_BYTES && !value->v.bytes->is_data_view;
|
|
1934
|
+
if (PROBE("isUint8Array")) return scr_dyn_typed_array_is(value, SCR_BYTES_U8);
|
|
1935
|
+
if (PROBE("isUint8ClampedArray")) return scr_dyn_typed_array_is(value, SCR_BYTES_U8C);
|
|
1936
|
+
if (PROBE("isUint16Array")) return scr_dyn_typed_array_is(value, SCR_BYTES_U16);
|
|
1937
|
+
if (PROBE("isUint32Array")) return scr_dyn_typed_array_is(value, SCR_BYTES_U32);
|
|
1938
|
+
if (PROBE("isInt8Array")) return scr_dyn_typed_array_is(value, SCR_BYTES_I8);
|
|
1939
|
+
if (PROBE("isInt16Array")) return scr_dyn_typed_array_is(value, SCR_BYTES_I16);
|
|
1940
|
+
if (PROBE("isInt32Array")) return scr_dyn_typed_array_is(value, SCR_BYTES_I32);
|
|
1941
|
+
if (PROBE("isFloat32Array")) return scr_dyn_typed_array_is(value, SCR_BYTES_F32);
|
|
1942
|
+
if (PROBE("isFloat64Array")) return scr_dyn_typed_array_is(value, SCR_BYTES_F64);
|
|
1943
|
+
if (PROBE("isMap")) return value->kind == SCR_DYN_HANDLE && value->v.handle.tag == SCR_DYNH_MAP;
|
|
1944
|
+
if (PROBE("isSet")) return value->kind == SCR_DYN_HANDLE && value->v.handle.tag == SCR_DYNH_SET;
|
|
1945
|
+
if (PROBE("isWeakMap")) return value->kind == SCR_DYN_HANDLE && value->v.handle.tag == SCR_DYNH_WEAK_MAP;
|
|
1946
|
+
if (PROBE("isWeakSet")) return value->kind == SCR_DYN_HANDLE && value->v.handle.tag == SCR_DYNH_WEAK_SET;
|
|
1947
|
+
if (PROBE("isRegExp")) return value->kind == SCR_DYN_HANDLE && value->v.handle.tag == SCR_DYNH_REGEXP;
|
|
1948
|
+
if (PROBE("isPromise")) return value->kind == SCR_DYN_PROMISE;
|
|
1949
|
+
if (PROBE("isProxy")) return value->kind == SCR_DYN_PROXY;
|
|
1950
|
+
if (PROBE("isAsyncFunction")) return value->kind == SCR_DYN_FUNC && (value->v.fn.clo->function_kind & 2) != 0;
|
|
1951
|
+
if (PROBE("isGeneratorFunction")) return value->kind == SCR_DYN_FUNC && (value->v.fn.clo->function_kind & 1) != 0;
|
|
1952
|
+
if (PROBE("isGeneratorObject")) return scr_dyn_generator(value);
|
|
1953
|
+
if (PROBE("isNativeError")) {
|
|
1954
|
+
ScrError *error = scr_errdyn_err_of(value);
|
|
1955
|
+
if (!error) return false;
|
|
1956
|
+
scr_error_release(error);
|
|
1957
|
+
return true;
|
|
1958
|
+
}
|
|
1959
|
+
#undef PROBE
|
|
1960
|
+
return false;
|
|
1961
|
+
}
|
|
1962
|
+
|
|
1963
|
+
/* Node's JavaScript wrappers have names/arity; engine-native probes are
|
|
1964
|
+
* anonymous with length zero. Keep their native closure identity intact. */
|
|
1965
|
+
ScrDyn *scr_dyn_util_type_value(const ScrDyn *value, const ScrStr *probe) {
|
|
1966
|
+
static const char *const named[] = { "isTypedArray", "isUint8Array", "isUint8ClampedArray", "isUint16Array", "isUint32Array",
|
|
1967
|
+
"isInt8Array", "isInt16Array", "isInt32Array", "isFloat32Array", "isFloat64Array" };
|
|
1968
|
+
const char *name = "";
|
|
1969
|
+
if (probe->len == 17 && memcmp(probe->data, "isArrayBufferView", 17) == 0) name = "isView";
|
|
1970
|
+
for (size_t i = 0; i < sizeof named / sizeof named[0]; i++)
|
|
1971
|
+
if (probe->len == strlen(named[i]) && memcmp(probe->data, named[i], probe->len) == 0) name = named[i];
|
|
1972
|
+
return scr_dyn_new_func(scr_closure_retain(value->v.fn.clo), value->v.fn.thunk, *name ? 1 : 0, value->v.fn.sig, name);
|
|
1973
|
+
}
|
|
1974
|
+
|
|
1905
1975
|
bool scr_dyn_bytes_is(const ScrDyn *d, int elem) {
|
|
1906
1976
|
return d && d->kind == SCR_DYN_BYTES && d->v.bytes->elem == (ScrBytesElem)elem;
|
|
1907
1977
|
}
|
|
@@ -2352,7 +2422,9 @@ const char *scr_dyn_specific_type(const ScrDyn *cb, char *detail, size_t cap) {
|
|
|
2352
2422
|
}
|
|
2353
2423
|
case SCR_DYN_NUM: {
|
|
2354
2424
|
char num[32];
|
|
2355
|
-
size_t n
|
|
2425
|
+
size_t n;
|
|
2426
|
+
if (cb->v.num == 0 && signbit(cb->v.num)) { memcpy(num, "-0", 3); n = 2; }
|
|
2427
|
+
else n = scr_f64_to_str(cb->v.num, num);
|
|
2356
2428
|
snprintf(detail, cap, "type number (%.*s)", (int)n, num);
|
|
2357
2429
|
break;
|
|
2358
2430
|
}
|
|
@@ -4550,7 +4622,16 @@ ScrStr *scr_dyn_string_coerce_js(const ScrDyn *d) {
|
|
|
4550
4622
|
for (int i = 0; i < 2; i++) {
|
|
4551
4623
|
const ScrDyn *owner = scr_dyn_property_owner(d, hint[i], strlen(hint[i]));
|
|
4552
4624
|
ScrDyn *m = owner ? scr_dyn_obj_read(d, hint[i], strlen(hint[i])) : NULL;
|
|
4625
|
+
if (scr_exc_pending()) { scr_dyn_release(m); return NULL; }
|
|
4553
4626
|
if (!m && i == 0 && scr_dyn_has_object_prototype(d)) {
|
|
4627
|
+
// Checked Error values retain their Error.prototype formatter even
|
|
4628
|
+
// when their fields are exposed through the cached object view.
|
|
4629
|
+
ScrError *error = scr_errdyn_err_of(d);
|
|
4630
|
+
if (error) {
|
|
4631
|
+
ScrStr *text = scr_error_to_string(error);
|
|
4632
|
+
scr_error_release(error);
|
|
4633
|
+
return text;
|
|
4634
|
+
}
|
|
4554
4635
|
return scr_str_new("[object Object]", 15);
|
|
4555
4636
|
}
|
|
4556
4637
|
if (!m || m->kind != SCR_DYN_FUNC) { scr_dyn_release(m); continue; }
|
|
@@ -4576,6 +4657,65 @@ ScrStr *scr_dyn_string_coerce_js(const ScrDyn *d) {
|
|
|
4576
4657
|
return scr_dyn_string_coerce(d);
|
|
4577
4658
|
}
|
|
4578
4659
|
|
|
4660
|
+
ScrStr *scr_util_to_usv_string(const ScrDyn *input) {
|
|
4661
|
+
const ScrDyn *value = input ? input : scr_dyn_undefined();
|
|
4662
|
+
/* Native string producers already replace unpaired surrogate code units.
|
|
4663
|
+
* Preserve ToString's object protocol before using that storage invariant. */
|
|
4664
|
+
if (scr_to_primitive_symbol && scr_iterator_object(value)) {
|
|
4665
|
+
ScrDyn *method = scr_dyn_reflect_get((ScrDyn *)value, scr_to_primitive_symbol, (ScrDyn *)value);
|
|
4666
|
+
if (!method) return NULL;
|
|
4667
|
+
if (method->kind != SCR_DYN_UNDEF && method->kind != SCR_DYN_NULL) {
|
|
4668
|
+
if (!scr_dyn_is_callable(method)) {
|
|
4669
|
+
ScrJsonBuf buffer;
|
|
4670
|
+
scr_jb_init(&buffer);
|
|
4671
|
+
if (scr_iterator_object(method)) scr_jb_puts(&buffer, "object");
|
|
4672
|
+
else {
|
|
4673
|
+
ScrStr *type = scr_dyn_typeof(method);
|
|
4674
|
+
scr_jb_put_str(&buffer, type);
|
|
4675
|
+
scr_str_release(type);
|
|
4676
|
+
if (method->kind != SCR_DYN_SYMBOL && method->kind != SCR_DYN_BIGINT) scr_jb_puts(&buffer, " ");
|
|
4677
|
+
if (method->kind == SCR_DYN_STR) {
|
|
4678
|
+
scr_jb_puts(&buffer, "\"");
|
|
4679
|
+
scr_jb_put_str(&buffer, method->v.str);
|
|
4680
|
+
scr_jb_puts(&buffer, "\"");
|
|
4681
|
+
}
|
|
4682
|
+
else if (method->kind != SCR_DYN_SYMBOL && method->kind != SCR_DYN_BIGINT) {
|
|
4683
|
+
ScrStr *text = scr_dyn_string_coerce(method);
|
|
4684
|
+
scr_jb_put_str(&buffer, text);
|
|
4685
|
+
scr_str_release(text);
|
|
4686
|
+
}
|
|
4687
|
+
}
|
|
4688
|
+
scr_jb_puts(&buffer, " is not a function");
|
|
4689
|
+
ScrStr *message = scr_jb_finish(&buffer);
|
|
4690
|
+
scr_throw_error_msg(SCR_ERR_TYPE, message->data, message->len);
|
|
4691
|
+
scr_str_release(message);
|
|
4692
|
+
scr_dyn_release(method);
|
|
4693
|
+
return NULL;
|
|
4694
|
+
}
|
|
4695
|
+
ScrStr *hint = scr_str_new("string", 6);
|
|
4696
|
+
ScrDyn *argument = scr_dyn_new_str(hint);
|
|
4697
|
+
scr_str_release(hint);
|
|
4698
|
+
scr_dyn_this_push_dyn(value);
|
|
4699
|
+
ScrDyn *primitive = scr_dyn_call(method, &argument, 1, "Symbol.toPrimitive");
|
|
4700
|
+
scr_dyn_this_pop();
|
|
4701
|
+
scr_dyn_release(argument);
|
|
4702
|
+
scr_dyn_release(method);
|
|
4703
|
+
if (!primitive) return NULL;
|
|
4704
|
+
if (scr_dyn_to_primitive_result_is_object(primitive)) {
|
|
4705
|
+
static const char message[] = "Cannot convert object to primitive value";
|
|
4706
|
+
scr_throw_error_msg(SCR_ERR_TYPE, message, sizeof message - 1);
|
|
4707
|
+
scr_dyn_release(primitive);
|
|
4708
|
+
return NULL;
|
|
4709
|
+
}
|
|
4710
|
+
ScrStr *text = scr_dyn_string_coerce(primitive);
|
|
4711
|
+
scr_dyn_release(primitive);
|
|
4712
|
+
return text;
|
|
4713
|
+
}
|
|
4714
|
+
scr_dyn_release(method);
|
|
4715
|
+
}
|
|
4716
|
+
return scr_dyn_string_coerce_js(value);
|
|
4717
|
+
}
|
|
4718
|
+
|
|
4579
4719
|
/* JS ToNumber over a checked-dynamic value, including OrdinaryToPrimitive's
|
|
4580
4720
|
* NUMBER hint for object snapshots. This is the numeric twin of
|
|
4581
4721
|
* scr_dyn_string_coerce_js above: valueOf precedes toString, inherited
|
|
@@ -5881,19 +6021,15 @@ static ScrDyn *scr_json_value(ScrJsonP *p) {
|
|
|
5881
6021
|
}
|
|
5882
6022
|
if (c == 't') {
|
|
5883
6023
|
if (!scr_json_lit(p, "true", 4)) return NULL;
|
|
5884
|
-
|
|
5885
|
-
d->v.b = true;
|
|
5886
|
-
return d;
|
|
6024
|
+
return scr_dyn_new_bool(true);
|
|
5887
6025
|
}
|
|
5888
6026
|
if (c == 'f') {
|
|
5889
6027
|
if (!scr_json_lit(p, "false", 5)) return NULL;
|
|
5890
|
-
|
|
5891
|
-
d->v.b = false;
|
|
5892
|
-
return d;
|
|
6028
|
+
return scr_dyn_new_bool(false);
|
|
5893
6029
|
}
|
|
5894
6030
|
if (c == 'n') {
|
|
5895
6031
|
if (!scr_json_lit(p, "null", 4)) return NULL;
|
|
5896
|
-
return
|
|
6032
|
+
return scr_dyn_new_null();
|
|
5897
6033
|
}
|
|
5898
6034
|
if (c == '-' || (c >= '0' && c <= '9')) return scr_json_number(p);
|
|
5899
6035
|
scr_json_throw_token(p);
|
|
@@ -9207,7 +9343,8 @@ ScrMap *scr_dyn_native_map_check(const ScrDyn *value, const ScrDynPath *path) {
|
|
|
9207
9343
|
bool scr_dyn_native_collection_is(const ScrDyn *value, int map, const char *type) {
|
|
9208
9344
|
if (!(map ? scr_dyn_native_map_is(value) : scr_dyn_native_set_is(value))) return false;
|
|
9209
9345
|
const ScrMap *storage = value->v.handle.ptr;
|
|
9210
|
-
|
|
9346
|
+
// A generic checked view uses dyn_ops to box/unbox the same live storage.
|
|
9347
|
+
return !type || (storage->dyn_ops && strcmp(storage->dyn_ops->type, type) == 0);
|
|
9211
9348
|
}
|
|
9212
9349
|
|
|
9213
9350
|
ScrMap *scr_dyn_native_collection_check(const ScrDyn *value, int map, const char *type, const ScrDynPath *path) {
|