@scriptc/compiler 0.4.3 → 0.4.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 (232) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +73 -29
  2. package/dist/backend/llvm/bytes-loop-versions.js +6 -0
  3. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
  4. package/dist/backend/llvm/bytes-loop-versions.test.js +7 -2
  5. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  6. package/dist/backend/llvm/debug-info.js +2 -5
  7. package/dist/backend/llvm/debug-info.js.map +1 -1
  8. package/dist/backend/llvm/dyn.d.ts +4 -0
  9. package/dist/backend/llvm/dyn.js +21 -9
  10. package/dist/backend/llvm/dyn.js.map +1 -1
  11. package/dist/backend/llvm/emit-function.js +2 -8
  12. package/dist/backend/llvm/emit-function.js.map +1 -1
  13. package/dist/backend/llvm/emit-module.js +16 -6
  14. package/dist/backend/llvm/emit-module.js.map +1 -1
  15. package/dist/backend/llvm/emitter.d.ts +10 -0
  16. package/dist/backend/llvm/emitter.js +9 -5
  17. package/dist/backend/llvm/emitter.js.map +1 -1
  18. package/dist/backend/llvm/emitter.test.js +11 -2
  19. package/dist/backend/llvm/emitter.test.js.map +1 -1
  20. package/dist/backend/llvm/expr-async.js +11 -13
  21. package/dist/backend/llvm/expr-async.js.map +1 -1
  22. package/dist/backend/llvm/expr-bytes.js +14 -8
  23. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  24. package/dist/backend/llvm/expr-containers.js +14 -0
  25. package/dist/backend/llvm/expr-containers.js.map +1 -1
  26. package/dist/backend/llvm/expr-primitives.js +20 -11
  27. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  28. package/dist/backend/llvm/expr-stream-bridges.js +16 -4
  29. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  30. package/dist/backend/llvm/integer-values.d.ts +5 -0
  31. package/dist/backend/llvm/integer-values.js +27 -3
  32. package/dist/backend/llvm/integer-values.js.map +1 -1
  33. package/dist/backend/llvm/lib-dispatch.js +133 -3
  34. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  35. package/dist/backend/llvm/lib-process.js +37 -1
  36. package/dist/backend/llvm/lib-process.js.map +1 -1
  37. package/dist/backend/llvm/lib-shared.js +21 -0
  38. package/dist/backend/llvm/lib-shared.js.map +1 -1
  39. package/dist/backend/llvm/publish.js +3 -3
  40. package/dist/backend/llvm/publish.js.map +1 -1
  41. package/dist/backend/llvm/reference-effects.js +3 -0
  42. package/dist/backend/llvm/reference-effects.js.map +1 -1
  43. package/dist/backend/llvm/shapes.js +2 -7
  44. package/dist/backend/llvm/shapes.js.map +1 -1
  45. package/dist/backend/llvm/stack-captures.js +1 -5
  46. package/dist/backend/llvm/stack-captures.js.map +1 -1
  47. package/dist/backend/llvm/union-repr.d.ts +4 -3
  48. package/dist/backend/llvm/union-repr.js +6 -5
  49. package/dist/backend/llvm/union-repr.js.map +1 -1
  50. package/dist/backend/llvm/walkers.js +13 -0
  51. package/dist/backend/llvm/walkers.js.map +1 -1
  52. package/dist/backend/native-codegen-core.d.ts +5 -3
  53. package/dist/backend/native-codegen-core.js +13 -6
  54. package/dist/backend/native-codegen-core.js.map +1 -1
  55. package/dist/backend/native-codegen.test.js +6 -4
  56. package/dist/backend/native-codegen.test.js.map +1 -1
  57. package/dist/backend/target-cpu.d.ts +26 -0
  58. package/dist/backend/target-cpu.js +98 -0
  59. package/dist/backend/target-cpu.js.map +1 -0
  60. package/dist/backend/target-cpu.test.d.ts +1 -0
  61. package/dist/backend/target-cpu.test.js +38 -0
  62. package/dist/backend/target-cpu.test.js.map +1 -0
  63. package/dist/cli/command.js +20 -1
  64. package/dist/cli/command.js.map +1 -1
  65. package/dist/cli/usage.d.ts +4 -1
  66. package/dist/cli/usage.js +7 -0
  67. package/dist/cli/usage.js.map +1 -1
  68. package/dist/compile-types.d.ts +7 -0
  69. package/dist/diagnostics/diagnostic.js +1 -1
  70. package/dist/diagnostics/diagnostic.js.map +1 -1
  71. package/dist/executable/executable-cache.d.ts +3 -0
  72. package/dist/executable/executable-cache.js +4 -0
  73. package/dist/executable/executable-cache.js.map +1 -1
  74. package/dist/executable/executable-cache.test.js +2 -0
  75. package/dist/executable/executable-cache.test.js.map +1 -1
  76. package/dist/frontend/decl-projection.js +105 -10
  77. package/dist/frontend/decl-projection.js.map +1 -1
  78. package/dist/frontend/lowering/builtins/async-context.d.ts +8 -2
  79. package/dist/frontend/lowering/builtins/async-context.js +62 -3
  80. package/dist/frontend/lowering/builtins/async-context.js.map +1 -1
  81. package/dist/frontend/lowering/builtins/crypto.js +3 -1
  82. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  83. package/dist/frontend/lowering/builtins/dates.js +4 -1
  84. package/dist/frontend/lowering/builtins/dates.js.map +1 -1
  85. package/dist/frontend/lowering/builtins/filesystem-calls.js +3 -3
  86. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  87. package/dist/frontend/lowering/builtins/fs-glob.js +6 -3
  88. package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -1
  89. package/dist/frontend/lowering/builtins/fs-paths.d.ts +43 -5
  90. package/dist/frontend/lowering/builtins/fs-paths.js +245 -93
  91. package/dist/frontend/lowering/builtins/fs-paths.js.map +1 -1
  92. package/dist/frontend/lowering/builtins/module-calls.js +6 -3
  93. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  94. package/dist/frontend/lowering/builtins/promises.d.ts +1 -1
  95. package/dist/frontend/lowering/builtins/promises.js +149 -138
  96. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  97. package/dist/frontend/lowering/call-signatures.js +0 -1
  98. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  99. package/dist/frontend/lowering/cjs-exports-object.js +1 -1
  100. package/dist/frontend/lowering/cjs-exports-object.js.map +1 -1
  101. package/dist/frontend/lowering/cjs-inline-require.d.ts +32 -0
  102. package/dist/frontend/lowering/cjs-inline-require.js +307 -4
  103. package/dist/frontend/lowering/cjs-inline-require.js.map +1 -1
  104. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +10 -0
  105. package/dist/frontend/lowering/class-dynamic-dispatch.js +114 -0
  106. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  107. package/dist/frontend/lowering/class-method-mutations.js +54 -18
  108. package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
  109. package/dist/frontend/lowering/class-protocols.d.ts +25 -0
  110. package/dist/frontend/lowering/class-protocols.js +183 -1
  111. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  112. package/dist/frontend/lowering/completion-callbacks.d.ts +4 -0
  113. package/dist/frontend/lowering/completion-callbacks.js +146 -0
  114. package/dist/frontend/lowering/completion-callbacks.js.map +1 -0
  115. package/dist/frontend/lowering/containers/array-callbacks.d.ts +5 -4
  116. package/dist/frontend/lowering/containers/array-callbacks.js +7 -6
  117. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  118. package/dist/frontend/lowering/containers/array-construction.js +5 -0
  119. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  120. package/dist/frontend/lowering/containers/array-methods.js +11 -3
  121. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  122. package/dist/frontend/lowering/containers/bytes.d.ts +25 -17
  123. package/dist/frontend/lowering/containers/bytes.js +453 -45
  124. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  125. package/dist/frontend/lowering/date-values.d.ts +11 -0
  126. package/dist/frontend/lowering/date-values.js +207 -0
  127. package/dist/frontend/lowering/date-values.js.map +1 -0
  128. package/dist/frontend/lowering/expressions/array-literals.js +6 -0
  129. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  130. package/dist/frontend/lowering/expressions/binary.js +64 -26
  131. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  132. package/dist/frontend/lowering/expressions/element-access.js +79 -0
  133. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  134. package/dist/frontend/lowering/expressions/identifiers.js +31 -1
  135. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  136. package/dist/frontend/lowering/expressions/property-access.js +56 -0
  137. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  138. package/dist/frontend/lowering/expressions/typeof.js +6 -0
  139. package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
  140. package/dist/frontend/lowering/expressions/updates.js +17 -0
  141. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  142. package/dist/frontend/lowering/function-returns.js +15 -0
  143. package/dist/frontend/lowering/function-returns.js.map +1 -1
  144. package/dist/frontend/lowering/indexed-unions.d.ts +54 -0
  145. package/dist/frontend/lowering/indexed-unions.js +401 -0
  146. package/dist/frontend/lowering/indexed-unions.js.map +1 -0
  147. package/dist/frontend/lowering/key-order-witness.js +210 -32
  148. package/dist/frontend/lowering/key-order-witness.js.map +1 -1
  149. package/dist/frontend/lowering/key-order-witness.test.js +104 -4
  150. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
  151. package/dist/frontend/lowering/lower-assert.js +15 -3
  152. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  153. package/dist/frontend/lowering/lower-calls.js +19 -3
  154. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  155. package/dist/frontend/lowering/lower-classes.js +22 -47
  156. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  157. package/dist/frontend/lowering/lower-exprs.js +205 -1
  158. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  159. package/dist/frontend/lowering/lower-generators.js +1 -1
  160. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  161. package/dist/frontend/lowering/lower-inspect.d.ts +1 -1
  162. package/dist/frontend/lowering/lower-inspect.js +35 -11
  163. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  164. package/dist/frontend/lowering/lower-modules.js +21 -5
  165. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  166. package/dist/frontend/lowering/lower-stmts.js +100 -34
  167. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  168. package/dist/frontend/lowering/lowerer.d.ts +30 -2
  169. package/dist/frontend/lowering/lowerer.js +68 -7
  170. package/dist/frontend/lowering/lowerer.js.map +1 -1
  171. package/dist/frontend/lowering/object-factory-new.d.ts +5 -0
  172. package/dist/frontend/lowering/object-factory-new.js +20 -6
  173. package/dist/frontend/lowering/object-factory-new.js.map +1 -1
  174. package/dist/frontend/lowering/overload-choice.d.ts +33 -0
  175. package/dist/frontend/lowering/overload-choice.js +190 -0
  176. package/dist/frontend/lowering/overload-choice.js.map +1 -0
  177. package/dist/frontend/lowering/surfaces.js +55 -2
  178. package/dist/frontend/lowering/surfaces.js.map +1 -1
  179. package/dist/frontend/pipeline.js +1 -1
  180. package/dist/frontend/pipeline.js.map +1 -1
  181. package/dist/frontend/program-analysis.d.ts +5 -1
  182. package/dist/frontend/program-analysis.js +5 -0
  183. package/dist/frontend/program-analysis.js.map +1 -1
  184. package/dist/frontend/program.d.ts +13 -5
  185. package/dist/frontend/program.js +197 -14
  186. package/dist/frontend/program.js.map +1 -1
  187. package/dist/frontend/ts7/semantic-model.d.ts +3 -0
  188. package/dist/frontend/ts7/semantic-model.js +5 -0
  189. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  190. package/dist/frontend/ts7/semantic-model.test.js +6 -1
  191. package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
  192. package/dist/frontend/ts7/semantic-types.d.ts +1 -1
  193. package/dist/frontend/ts7/semantic-types.js +1 -1
  194. package/dist/frontend/ts7/semantic-types.js.map +1 -1
  195. package/dist/frontend/type-mapper.js +45 -16
  196. package/dist/frontend/type-mapper.js.map +1 -1
  197. package/dist/index.js +12 -0
  198. package/dist/index.js.map +1 -1
  199. package/dist/ir/builtin-effects.js +8 -0
  200. package/dist/ir/builtin-effects.js.map +1 -1
  201. package/dist/ir/builtin-signatures.d.ts +1 -1
  202. package/dist/ir/builtin-signatures.js +56 -0
  203. package/dist/ir/builtin-signatures.js.map +1 -1
  204. package/dist/ir/int32-slots.js +7 -0
  205. package/dist/ir/int32-slots.js.map +1 -1
  206. package/dist/ir/int32-slots.test.js +33 -0
  207. package/dist/ir/int32-slots.test.js.map +1 -1
  208. package/dist/ir/integer-loops.js +14 -4
  209. package/dist/ir/integer-loops.js.map +1 -1
  210. package/dist/ir/ir.d.ts +13 -3
  211. package/dist/ir/ir.js +19 -5
  212. package/dist/ir/ir.js.map +1 -1
  213. package/dist/ir/ir.test.js +2 -1
  214. package/dist/ir/ir.test.js.map +1 -1
  215. package/dist/ir/js-ic.d.ts +2 -15
  216. package/dist/ir/js-ic.js +11 -79
  217. package/dist/ir/js-ic.js.map +1 -1
  218. package/dist/ir/js-ic.test.js +0 -142
  219. package/dist/ir/js-ic.test.js.map +1 -1
  220. package/dist/ir/runtime-features.js +25 -1
  221. package/dist/ir/runtime-features.js.map +1 -1
  222. package/dist/ir/validate.js +46 -5
  223. package/dist/ir/validate.js.map +1 -1
  224. package/dist/library/ir-policy.js +1 -0
  225. package/dist/library/ir-policy.js.map +1 -1
  226. package/dist/native/prepare.d.ts +1 -1
  227. package/dist/native/prepare.js +11 -1
  228. package/dist/native/prepare.js.map +1 -1
  229. package/dist/native/prepare.test.js +18 -2
  230. package/dist/native/prepare.test.js.map +1 -1
  231. package/package.json +20 -20
  232. package/surface-manifest.json +2 -4
@@ -1 +1 @@
1
- {"version":3,"file":"lower-generators.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-generators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lower-generators.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-generators.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as ts from "../ts7/adapter.js";
2
- import type { Lowerer } from "./lowerer.js";
2
+ import { type Lowerer } from "./lowerer.js";
3
3
  import { type IrExpr, type IrType, type SrcLoc } from "../../ir/ir.js";
4
4
  /** The rendering of one value of type `t` at runtime depth `recurse`
5
5
  * with the depth budget `depth` — a direct scalar libCall or a call of
@@ -5,6 +5,7 @@ import { builtinClassDynValueOf, builtinClassKindOf } from "./builtins/builtin-c
5
5
  import { InternalCompilerError } from "../../errors.js";
6
6
  import * as ts from "../ts7/adapter.js";
7
7
  import { unsignedHex } from "../../format-integer.js";
8
+ import { jsFuncNameOf } from "./lowerer.js";
8
9
  import { isJsSourceFile } from "../program.js";
9
10
  import { BOOL, DYN, F64, RUNTIME_ERROR_CLASSES, STRING, isUnitType, UNDEFINED_T, VOID, canConvertToDyn, canDynCheckTo, CLASS_FIELD_ATTRIBUTES_PREFIX, classDynViewSupported, DYN_CLASS_PROPERTIES, isClassOwnEnumerableFieldName, isDirentShape, isDynTypedRefType, recordTextCodecClass, shapeHasAccessorSlots, shapeKeyOrders, typeKey, } from "../../ir/ir.js";
10
11
  import { isSafeToDiscard, isSafeToRepeat } from "./expressions/evaluation-safety.js";
@@ -646,11 +647,7 @@ function inspectSupport(lowerer, t, visiting, out) {
646
647
  case "array":
647
648
  return inspectSupport(lowerer, t.elem, visiting, out);
648
649
  case "bytes":
649
- // A Uint8Array and a Buffer share the u8 representation and print
650
- // differently; the other element kinds are never Buffers.
651
- return t.elem === "u8"
652
- ? "Uint8Array and Buffer values inside composites have no inspect lowering yet (Buffer's <Buffer ..> form vs Uint8Array's is not recorded in the static type here)"
653
- : null;
650
+ return null;
654
651
  case "record": {
655
652
  if (visiting.has(t.shapeId)) {
656
653
  out.recursive = true;
@@ -866,7 +863,15 @@ export function inspectExpr(lowerer, t, value, recurse, depth, loc) {
866
863
  loc,
867
864
  };
868
865
  }
869
- return { kind: "libCall", fn: "insp.buffer", args: [value], type: STRING, loc };
866
+ // A Uint8Array, a Buffer and a DataView share the u8 representation
867
+ // and print differently: the view's own flags pick.
868
+ return {
869
+ kind: "libCall",
870
+ fn: "insp.bytes",
871
+ args: [value, recurse, depth],
872
+ type: STRING,
873
+ loc,
874
+ };
870
875
  case "dyn":
871
876
  return { kind: "libCall", fn: "insp.dyn", args: [value, recurse, depth], type: STRING, loc };
872
877
  case "generator":
@@ -1957,15 +1962,17 @@ export function lowerConsoleInspectArg(lowerer, node, value, surface, loc) {
1957
1962
  lowerer.unsupported("SC1090", node, `${surface} of '${tname}' values (Buffer and the numeric typed arrays are the lowered byte renderings; DataView has none yet)`);
1958
1963
  }
1959
1964
  if (!isBufferTypeName(tname)) {
1965
+ // A u8 value the checker types as a Uint8Array may still hold a
1966
+ // Buffer, which Node prints as one: the view's flags pick.
1960
1967
  return {
1961
1968
  kind: "libCall",
1962
- fn: "insp.typedArray",
1969
+ fn: t.elem === "u8" ? "insp.bytes" : "insp.typedArray",
1963
1970
  args: [value, numLit(0, loc), numLit(2, loc)],
1964
1971
  type: STRING,
1965
1972
  loc,
1966
1973
  };
1967
1974
  }
1968
- return inspectExpr(lowerer, t, value, numLit(0, loc), numLit(2, loc), loc);
1975
+ return { kind: "libCall", fn: "insp.buffer", args: [value], type: STRING, loc };
1969
1976
  }
1970
1977
  if (t.kind === "void") {
1971
1978
  // Node prints "undefined" for a void call's result; a void expression
@@ -2132,6 +2139,13 @@ function directCallableInspect(lowerer, node, loc) {
2132
2139
  const decl = sym.declarations[0];
2133
2140
  if (!decl)
2134
2141
  return null;
2142
+ // A JavaScript function can hold own properties (`f.x = 1`, computed
2143
+ // keys), which the runtime walk prints after its name.
2144
+ if (isJsSourceFile(node.getSourceFile())) {
2145
+ const type = lowerer.mapTypeOf(lowerer.typeOf(node));
2146
+ if (type?.kind === "func" && lowerer.dynConvertible(type))
2147
+ return null;
2148
+ }
2135
2149
  if (ts.isFunctionDeclaration(decl) && decl.name) {
2136
2150
  return strLit(`[Function: ${decl.name.text}]`, loc);
2137
2151
  }
@@ -2175,7 +2189,15 @@ export function lowerInspectValue(lowerer, valueNode, optionsNode, loc, dir) {
2175
2189
  ? `[Function: ${valueNode.name.text}]`
2176
2190
  : "[Function (anonymous)]", loc);
2177
2191
  }
2178
- const value = lowerer.lowerExpr(valueNode);
2192
+ let value = lowerer.lowerExpr(valueNode);
2193
+ // A JavaScript function renders through the runtime walk, which prints
2194
+ // its own properties after its name.
2195
+ if (value.type.kind === "func" &&
2196
+ isJsSourceFile(valueNode.getSourceFile()) &&
2197
+ lowerer.dynConvertible(value.type)) {
2198
+ const name = jsFuncNameOf(valueNode);
2199
+ value = { kind: "dynFrom", value, type: DYN, ...(name !== null ? { fnName: name } : {}), loc };
2200
+ }
2179
2201
  if (value.type.kind === "bytes") {
2180
2202
  // One runtime representation serves Buffer AND Uint8Array; their
2181
2203
  // renderings differ (<Buffer aa> vs Uint8Array(1) [ 170 ]), so the
@@ -2195,14 +2217,16 @@ export function lowerInspectValue(lowerer, valueNode, optionsNode, loc, dir) {
2195
2217
  // layout options.
2196
2218
  return withInspectLayout(lowerer, options, value, (input) => ({
2197
2219
  kind: "libCall",
2198
- fn: "insp.typedArray",
2220
+ fn: value.type.kind === "bytes" && value.type.elem === "u8"
2221
+ ? "insp.bytes"
2222
+ : "insp.typedArray",
2199
2223
  args: [input, numLit(0, loc), numLit(options.depth, loc)],
2200
2224
  type: STRING,
2201
2225
  loc,
2202
2226
  }), loc);
2203
2227
  }
2204
2228
  // Buffers render fully at any depth and on one line (custom inspect).
2205
- return inspectExpr(lowerer, value.type, value, numLit(0, loc), numLit(2, loc), loc);
2229
+ return { kind: "libCall", fn: "insp.buffer", args: [value], type: STRING, loc };
2206
2230
  }
2207
2231
  const walk = { recursive: false };
2208
2232
  const reason = inspectSupport(lowerer, value.type, new Set(), walk);