@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.
Files changed (180) hide show
  1. package/dist/THIRD_PARTY_NOTICES +1 -1
  2. package/dist/bin/scriptc +0 -0
  3. package/dist/bin/scriptc.json +1 -1
  4. package/dist/lib/declarations/scriptc-node-fallback.d.ts +99 -27
  5. package/dist/lib/llvm/bin/scriptc-llvm-codegen +0 -0
  6. package/dist/lib/llvm/package.json +1 -1
  7. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_array.o +0 -0
  8. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_assert.o +0 -0
  9. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_async.o +0 -0
  10. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bigint.o +0 -0
  11. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_bytes_io.o +0 -0
  12. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_cycle.o +0 -0
  13. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_events.o +0 -0
  14. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_exception.o +0 -0
  15. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_file_handle.o +0 -0
  16. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_json.o +0 -0
  17. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_lib.o +0 -0
  18. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_map.o +0 -0
  19. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_node_builtin.o +0 -0
  20. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_regex.o +0 -0
  21. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_string.o +0 -0
  22. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_symbol.o +0 -0
  23. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_url.o +0 -0
  24. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_url_params.o +0 -0
  25. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_util_compare.o +0 -0
  26. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/default/scr_util_style.o +0 -0
  27. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_array.o +0 -0
  28. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_assert.o +0 -0
  29. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_async.o +0 -0
  30. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bigint.o +0 -0
  31. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_bytes_io.o +0 -0
  32. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_cycle.o +0 -0
  33. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_events.o +0 -0
  34. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_exception.o +0 -0
  35. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_file_handle.o +0 -0
  36. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_island.o +0 -0
  37. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_json.o +0 -0
  38. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_lib.o +0 -0
  39. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_map.o +0 -0
  40. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_node_builtin.o +0 -0
  41. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_regex.o +0 -0
  42. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_string.o +0 -0
  43. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_symbol.o +0 -0
  44. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_url.o +0 -0
  45. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_url_params.o +0 -0
  46. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_util_compare.o +0 -0
  47. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_util_style.o +0 -0
  48. package/dist/lib/runtime-darwin-arm64/artifacts/dev/runtime/dynamic/scr_web.o +0 -0
  49. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_array.o +0 -0
  50. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_assert.o +0 -0
  51. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bigint.o +0 -0
  52. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_bytes_io.o +0 -0
  53. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_cycle.o +0 -0
  54. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_exception.o +0 -0
  55. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_json.o +0 -0
  56. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_lib.o +0 -0
  57. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_map.o +0 -0
  58. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_node_builtin.o +0 -0
  59. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_regex.o +0 -0
  60. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_string.o +0 -0
  61. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_symbol.o +0 -0
  62. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_url.o +0 -0
  63. package/dist/lib/runtime-darwin-arm64/artifacts/library-dev/runtime/default/scr_url_params.o +0 -0
  64. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_array.o +0 -0
  65. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_assert.o +0 -0
  66. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bigint.o +0 -0
  67. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_bytes_io.o +0 -0
  68. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_cycle.o +0 -0
  69. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_exception.o +0 -0
  70. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_json.o +0 -0
  71. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_lib.o +0 -0
  72. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_map.o +0 -0
  73. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_node_builtin.o +0 -0
  74. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_regex.o +0 -0
  75. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_string.o +0 -0
  76. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_symbol.o +0 -0
  77. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_url.o +0 -0
  78. package/dist/lib/runtime-darwin-arm64/artifacts/library-release/runtime/default/scr_url_params.o +0 -0
  79. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_array.o +0 -0
  80. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_assert.o +0 -0
  81. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bigint.o +0 -0
  82. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_bytes_io.o +0 -0
  83. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_cycle.o +0 -0
  84. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_exception.o +0 -0
  85. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_json.o +0 -0
  86. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_lib.o +0 -0
  87. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_map.o +0 -0
  88. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_node_builtin.o +0 -0
  89. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_regex.o +0 -0
  90. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_string.o +0 -0
  91. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_symbol.o +0 -0
  92. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_url.o +0 -0
  93. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-dev/runtime/default/scr_url_params.o +0 -0
  94. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_array.o +0 -0
  95. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_assert.o +0 -0
  96. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bigint.o +0 -0
  97. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_bytes_io.o +0 -0
  98. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_cycle.o +0 -0
  99. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_exception.o +0 -0
  100. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_json.o +0 -0
  101. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_lib.o +0 -0
  102. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_map.o +0 -0
  103. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_node_builtin.o +0 -0
  104. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_regex.o +0 -0
  105. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_string.o +0 -0
  106. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_symbol.o +0 -0
  107. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_url.o +0 -0
  108. package/dist/lib/runtime-darwin-arm64/artifacts/library-thread-release/runtime/default/scr_url_params.o +0 -0
  109. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_array.o +0 -0
  110. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_assert.o +0 -0
  111. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_async.o +0 -0
  112. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bigint.o +0 -0
  113. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_bytes_io.o +0 -0
  114. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_cycle.o +0 -0
  115. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_events.o +0 -0
  116. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_exception.o +0 -0
  117. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_file_handle.o +0 -0
  118. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_json.o +0 -0
  119. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_lib.o +0 -0
  120. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_map.o +0 -0
  121. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_node_builtin.o +0 -0
  122. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_regex.o +0 -0
  123. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_string.o +0 -0
  124. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_symbol.o +0 -0
  125. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_url.o +0 -0
  126. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_url_params.o +0 -0
  127. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_util_compare.o +0 -0
  128. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/default/scr_util_style.o +0 -0
  129. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_array.o +0 -0
  130. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_assert.o +0 -0
  131. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_async.o +0 -0
  132. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bigint.o +0 -0
  133. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_bytes_io.o +0 -0
  134. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_cycle.o +0 -0
  135. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_events.o +0 -0
  136. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_exception.o +0 -0
  137. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_file_handle.o +0 -0
  138. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_island.o +0 -0
  139. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_json.o +0 -0
  140. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_lib.o +0 -0
  141. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_map.o +0 -0
  142. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_node_builtin.o +0 -0
  143. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_regex.o +0 -0
  144. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_string.o +0 -0
  145. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_symbol.o +0 -0
  146. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_url.o +0 -0
  147. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_url_params.o +0 -0
  148. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_util_compare.o +0 -0
  149. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_util_style.o +0 -0
  150. package/dist/lib/runtime-darwin-arm64/artifacts/release/runtime/dynamic/scr_web.o +0 -0
  151. package/dist/lib/runtime-darwin-arm64/package.json +1 -1
  152. package/dist/lib/runtime-darwin-arm64/runtime-pack.json +399 -273
  153. package/dist/lib/runtime-sources/package.json +1 -1
  154. package/dist/lib/runtime-sources/src/scr_array.c +55 -34
  155. package/dist/lib/runtime-sources/src/scr_assert.c +26 -0
  156. package/dist/lib/runtime-sources/src/scr_async.c +44 -0
  157. package/dist/lib/runtime-sources/src/scr_bigint.c +15 -0
  158. package/dist/lib/runtime-sources/src/scr_bytes_io.c +305 -48
  159. package/dist/lib/runtime-sources/src/scr_cycle.c +84 -60
  160. package/dist/lib/runtime-sources/src/scr_events.c +9 -0
  161. package/dist/lib/runtime-sources/src/scr_exception.c +1 -0
  162. package/dist/lib/runtime-sources/src/scr_file_handle.c +11 -0
  163. package/dist/lib/runtime-sources/src/scr_island.c +1001 -417
  164. package/dist/lib/runtime-sources/src/scr_island_manifest.h +11 -7
  165. package/dist/lib/runtime-sources/src/scr_json.c +150 -13
  166. package/dist/lib/runtime-sources/src/scr_lib.c +424 -28
  167. package/dist/lib/runtime-sources/src/scr_map.c +236 -40
  168. package/dist/lib/runtime-sources/src/scr_node_builtin.c +78 -0
  169. package/dist/lib/runtime-sources/src/scr_regex.c +112 -8
  170. package/dist/lib/runtime-sources/src/scr_runtime.h +108 -14
  171. package/dist/lib/runtime-sources/src/scr_string.c +29 -0
  172. package/dist/lib/runtime-sources/src/scr_symbol.c +5 -0
  173. package/dist/lib/runtime-sources/src/scr_system_errors.h +573 -0
  174. package/dist/lib/runtime-sources/src/scr_url.c +515 -59
  175. package/dist/lib/runtime-sources/src/scr_url_internal.h +6 -0
  176. package/dist/lib/runtime-sources/src/scr_url_params.c +10 -0
  177. package/dist/lib/runtime-sources/src/scr_util_compare.c +222 -0
  178. package/dist/lib/runtime-sources/src/scr_util_style.c +337 -0
  179. package/dist/lib/runtime-sources/src/scr_web.c +720 -238
  180. 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,domainToASCII,domai"
58
- "nToUnicode,urlToHttpOptions"},
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
- "parseEnv,format,formatWithOptions,inspect,inherits,promisify,callbackify,deprecate,debug"
145
- "log,debug,types,isDeepStrictEqual,stripVTControlCharacters,styleText,parseArgs,toUSVStri"
146
- "ng,_extend,TextEncoder,TextDecoder,isArray"},
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
- ScrDyn *scr_dyn_new_null(void) { return scr_dyn_alloc(SCR_DYN_NULL); }
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 *d = scr_dyn_alloc(SCR_DYN_BOOL);
1034
- d->v.b = b;
1035
- return d;
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 = scr_f64_to_str(cb->v.num, num);
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
- ScrDyn *d = scr_dyn_alloc(SCR_DYN_BOOL);
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
- ScrDyn *d = scr_dyn_alloc(SCR_DYN_BOOL);
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 scr_dyn_alloc(SCR_DYN_NULL);
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
- return type ? storage->dyn_ops && strcmp(storage->dyn_ops->type, type) == 0 : !storage->dyn_ops;
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) {