xbintsc 0.3.3 → 0.3.5

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 (215) hide show
  1. package/dist/src/ast/expressions.d.ts +8 -0
  2. package/dist/src/binder/binder.js +1 -0
  3. package/dist/src/binder/binder.js.map +1 -1
  4. package/dist/src/binder/references.d.ts +1 -1
  5. package/dist/src/binder/references.js +34 -5
  6. package/dist/src/binder/references.js.map +1 -1
  7. package/dist/src/binder/types.d.ts +4 -0
  8. package/dist/src/binder/types.js.map +1 -1
  9. package/dist/src/cli/main.js.map +1 -1
  10. package/dist/src/codegen/generator/calls/access.d.ts +9 -1
  11. package/dist/src/codegen/generator/calls/access.js +146 -13
  12. package/dist/src/codegen/generator/calls/access.js.map +1 -1
  13. package/dist/src/codegen/generator/calls/closures.d.ts +1 -0
  14. package/dist/src/codegen/generator/calls/closures.js +25 -0
  15. package/dist/src/codegen/generator/calls/closures.js.map +1 -1
  16. package/dist/src/codegen/generator/calls/invocation.js +12 -1
  17. package/dist/src/codegen/generator/calls/invocation.js.map +1 -1
  18. package/dist/src/codegen/generator/calls/literals.js +12 -4
  19. package/dist/src/codegen/generator/calls/literals.js.map +1 -1
  20. package/dist/src/codegen/generator/calls/super.js +4 -7
  21. package/dist/src/codegen/generator/calls/super.js.map +1 -1
  22. package/dist/src/codegen/generator/context.d.ts +21 -2
  23. package/dist/src/codegen/generator/context.js +42 -5
  24. package/dist/src/codegen/generator/context.js.map +1 -1
  25. package/dist/src/codegen/generator/expressions/assignment.js +1 -3
  26. package/dist/src/codegen/generator/expressions/assignment.js.map +1 -1
  27. package/dist/src/codegen/generator/expressions/primary.d.ts +3 -1
  28. package/dist/src/codegen/generator/expressions/primary.js +99 -1
  29. package/dist/src/codegen/generator/expressions/primary.js.map +1 -1
  30. package/dist/src/codegen/generator/generator.js.map +1 -1
  31. package/dist/src/codegen/generator/module.js +25 -15
  32. package/dist/src/codegen/generator/module.js.map +1 -1
  33. package/dist/src/codegen/generator/state.d.ts +15 -0
  34. package/dist/src/codegen/generator/state.js +28 -1
  35. package/dist/src/codegen/generator/state.js.map +1 -1
  36. package/dist/src/codegen/generator/statements/control-flow.d.ts +3 -1
  37. package/dist/src/codegen/generator/statements/control-flow.js +85 -0
  38. package/dist/src/codegen/generator/statements/control-flow.js.map +1 -1
  39. package/dist/src/codegen/generator/statements/dispatch.js +15 -6
  40. package/dist/src/codegen/generator/statements/dispatch.js.map +1 -1
  41. package/dist/src/codegen/generator/statements/loops.d.ts +3 -0
  42. package/dist/src/codegen/generator/statements/loops.js +25 -11
  43. package/dist/src/codegen/generator/statements/loops.js.map +1 -1
  44. package/dist/src/codegen/generator/tables.d.ts +7 -0
  45. package/dist/src/codegen/generator/tables.js +41 -1
  46. package/dist/src/codegen/generator/tables.js.map +1 -1
  47. package/dist/src/driver/compiler.d.ts +1 -1
  48. package/dist/src/driver/compiler.js +33 -1
  49. package/dist/src/driver/compiler.js.map +1 -1
  50. package/dist/src/driver/modules.d.ts +4 -3
  51. package/dist/src/driver/modules.js +61 -4
  52. package/dist/src/driver/modules.js.map +1 -1
  53. package/dist/src/driver/toolchain.js +1 -1
  54. package/dist/src/driver/toolchain.js.map +1 -1
  55. package/dist/src/lexer/scanner.js.map +1 -1
  56. package/dist/src/parser/declarations/classes.js +4 -0
  57. package/dist/src/parser/declarations/classes.js.map +1 -1
  58. package/dist/src/parser/declarations/type-members.js.map +1 -1
  59. package/dist/src/parser/expressions.d.ts +2 -1
  60. package/dist/src/parser/expressions.js +10 -1
  61. package/dist/src/parser/expressions.js.map +1 -1
  62. package/dist/src/parser/helpers.js +2 -2
  63. package/dist/src/parser/helpers.js.map +1 -1
  64. package/dist/src/parser/literals.js +79 -6
  65. package/dist/src/parser/literals.js.map +1 -1
  66. package/dist/src/parser/modules.js.map +1 -1
  67. package/dist/src/parser/parser.js +0 -1
  68. package/dist/src/parser/parser.js.map +1 -1
  69. package/dist/src/parser/statements.d.ts +1 -0
  70. package/dist/src/parser/statements.js +13 -1
  71. package/dist/src/parser/statements.js.map +1 -1
  72. package/dist/src/parser/types.js +2 -2
  73. package/dist/src/parser/types.js.map +1 -1
  74. package/dist/tests/ast/factory.test.d.ts +1 -0
  75. package/dist/tests/ast/factory.test.js +35 -0
  76. package/dist/tests/ast/factory.test.js.map +1 -0
  77. package/dist/tests/ast/visitor.test.d.ts +1 -0
  78. package/dist/tests/ast/visitor.test.js +53 -0
  79. package/dist/tests/ast/visitor.test.js.map +1 -0
  80. package/dist/tests/cli/main.test.js +109 -9
  81. package/dist/tests/cli/main.test.js.map +1 -1
  82. package/dist/tests/codegen/closures.test.d.ts +1 -0
  83. package/dist/tests/codegen/closures.test.js +32 -0
  84. package/dist/tests/codegen/closures.test.js.map +1 -0
  85. package/dist/tests/codegen/expressions.test.d.ts +1 -0
  86. package/dist/tests/codegen/expressions.test.js +149 -0
  87. package/dist/tests/codegen/expressions.test.js.map +1 -0
  88. package/dist/tests/codegen/llvm.test.js +14 -0
  89. package/dist/tests/codegen/llvm.test.js.map +1 -1
  90. package/dist/tests/codegen/values.test.d.ts +1 -0
  91. package/dist/tests/codegen/values.test.js +48 -0
  92. package/dist/tests/codegen/values.test.js.map +1 -0
  93. package/dist/tests/diagnostics/diagnostic.test.d.ts +1 -0
  94. package/dist/tests/diagnostics/diagnostic.test.js +117 -0
  95. package/dist/tests/diagnostics/diagnostic.test.js.map +1 -0
  96. package/dist/tests/diagnostics/source.test.d.ts +1 -0
  97. package/dist/tests/diagnostics/source.test.js +58 -0
  98. package/dist/tests/diagnostics/source.test.js.map +1 -0
  99. package/dist/tests/driver/modules.test.d.ts +1 -0
  100. package/dist/tests/driver/modules.test.js +140 -0
  101. package/dist/tests/driver/modules.test.js.map +1 -0
  102. package/dist/tests/driver/paths.test.js +17 -1
  103. package/dist/tests/driver/paths.test.js.map +1 -1
  104. package/dist/tests/driver/runtime-lib.test.d.ts +1 -0
  105. package/dist/tests/driver/runtime-lib.test.js +19 -0
  106. package/dist/tests/driver/runtime-lib.test.js.map +1 -0
  107. package/dist/tests/driver/toolchain-provider.test.js +91 -0
  108. package/dist/tests/driver/toolchain-provider.test.js.map +1 -1
  109. package/dist/tests/driver/toolchain.test.js +11 -1
  110. package/dist/tests/driver/toolchain.test.js.map +1 -1
  111. package/dist/tests/e2e/compile-node.test.js +14 -1
  112. package/dist/tests/e2e/compile-node.test.js.map +1 -1
  113. package/dist/tests/e2e/compile.test.js +465 -2
  114. package/dist/tests/e2e/compile.test.js.map +1 -1
  115. package/dist/tests/e2e/differential.test.d.ts +7 -0
  116. package/dist/tests/e2e/differential.test.js +581 -0
  117. package/dist/tests/e2e/differential.test.js.map +1 -0
  118. package/dist/tests/e2e/harness.d.ts +21 -0
  119. package/dist/tests/e2e/harness.js +26 -0
  120. package/dist/tests/e2e/harness.js.map +1 -1
  121. package/dist/tests/extensions/node.test.d.ts +1 -0
  122. package/dist/tests/extensions/node.test.js +32 -0
  123. package/dist/tests/extensions/node.test.js.map +1 -0
  124. package/dist/tests/lexer/identifiers.test.d.ts +1 -0
  125. package/dist/tests/lexer/identifiers.test.js +13 -0
  126. package/dist/tests/lexer/identifiers.test.js.map +1 -0
  127. package/dist/tests/lexer/numbers.test.d.ts +1 -0
  128. package/dist/tests/lexer/numbers.test.js +23 -0
  129. package/dist/tests/lexer/numbers.test.js.map +1 -0
  130. package/dist/tests/lexer/strings.test.d.ts +1 -0
  131. package/dist/tests/lexer/strings.test.js +72 -0
  132. package/dist/tests/lexer/strings.test.js.map +1 -0
  133. package/dist/tests/parser/declarations.test.d.ts +1 -0
  134. package/dist/tests/parser/declarations.test.js +70 -0
  135. package/dist/tests/parser/declarations.test.js.map +1 -0
  136. package/dist/tests/parser/expressions.test.d.ts +1 -0
  137. package/dist/tests/parser/expressions.test.js +47 -0
  138. package/dist/tests/parser/expressions.test.js.map +1 -0
  139. package/dist/tests/parser/helpers.test.d.ts +1 -0
  140. package/dist/tests/parser/helpers.test.js +58 -0
  141. package/dist/tests/parser/helpers.test.js.map +1 -0
  142. package/dist/tests/parser/literals.test.d.ts +1 -0
  143. package/dist/tests/parser/literals.test.js +70 -0
  144. package/dist/tests/parser/literals.test.js.map +1 -0
  145. package/dist/tests/parser/module-syntax.test.d.ts +1 -0
  146. package/dist/tests/parser/module-syntax.test.js +91 -0
  147. package/dist/tests/parser/module-syntax.test.js.map +1 -0
  148. package/dist/tests/parser/statements.test.d.ts +1 -0
  149. package/dist/tests/parser/statements.test.js +85 -0
  150. package/dist/tests/parser/statements.test.js.map +1 -0
  151. package/dist/tests/parser/type-members.test.d.ts +1 -0
  152. package/dist/tests/parser/type-members.test.js +86 -0
  153. package/dist/tests/parser/type-members.test.js.map +1 -0
  154. package/dist/tests/parser/types.test.d.ts +1 -0
  155. package/dist/tests/parser/types.test.js +143 -0
  156. package/dist/tests/parser/types.test.js.map +1 -0
  157. package/package.json +6 -1
  158. package/runtime/ext_node/fs/fs_ops.c +36 -1
  159. package/runtime/rt.h +17 -0
  160. package/runtime/rt_internal.h +88 -2
  161. package/runtime/xt_builtins.c +174 -6
  162. package/runtime/xt_containers.c +234 -42
  163. package/runtime/xt_generator.c +304 -0
  164. package/runtime/xt_io.c +170 -30
  165. package/runtime/xt_promise.c +6 -1
  166. package/runtime/xt_regex.h +105 -35
  167. package/runtime/xt_stdlib/dispatch.inc +255 -4
  168. package/runtime/xt_stdlib/strings.inc +17 -13
  169. package/runtime/xt_stdlib2/arrays.inc +126 -19
  170. package/runtime/xt_stdlib2/date.inc +9 -2
  171. package/runtime/xt_stdlib2/error.inc +162 -12
  172. package/runtime/xt_stdlib2/helpers.inc +4 -0
  173. package/runtime/xt_stdlib2/json.inc +19 -6
  174. package/runtime/xt_stdlib2/number-string-statics.inc +1 -1
  175. package/runtime/xt_stdlib2/numbers.inc +4 -5
  176. package/runtime/xt_stdlib2/objects.inc +29 -0
  177. package/runtime/xt_stdlib2/regexp-match.inc +293 -51
  178. package/runtime/xt_stdlib2/set.inc +58 -2
  179. package/runtime/xt_stdlib2/strings.inc +38 -0
  180. package/runtime/xt_symbol.c +149 -0
  181. package/runtime/xt_values.c +221 -15
  182. package/scripts/build-runtime.ts +1 -1
  183. package/src/ast/expressions.ts +8 -0
  184. package/src/binder/binder.ts +1 -1
  185. package/src/binder/references.ts +47 -4
  186. package/src/binder/types.ts +4 -0
  187. package/src/cli/main.ts +1 -2
  188. package/src/codegen/generator/calls/access.ts +158 -13
  189. package/src/codegen/generator/calls/closures.ts +24 -0
  190. package/src/codegen/generator/calls/invocation.ts +11 -1
  191. package/src/codegen/generator/calls/literals.ts +10 -4
  192. package/src/codegen/generator/calls/super.ts +6 -9
  193. package/src/codegen/generator/context.ts +44 -7
  194. package/src/codegen/generator/expressions/assignment.ts +1 -3
  195. package/src/codegen/generator/expressions/primary.ts +108 -2
  196. package/src/codegen/generator/generator.ts +0 -1
  197. package/src/codegen/generator/module.ts +24 -18
  198. package/src/codegen/generator/state.ts +44 -1
  199. package/src/codegen/generator/statements/control-flow.ts +86 -0
  200. package/src/codegen/generator/statements/dispatch.ts +18 -6
  201. package/src/codegen/generator/statements/loops.ts +29 -11
  202. package/src/codegen/generator/tables.ts +44 -1
  203. package/src/driver/compiler.ts +32 -2
  204. package/src/driver/modules.ts +64 -4
  205. package/src/driver/toolchain.ts +1 -1
  206. package/src/lexer/scanner.ts +0 -1
  207. package/src/parser/declarations/classes.ts +4 -0
  208. package/src/parser/declarations/type-members.ts +0 -2
  209. package/src/parser/expressions.ts +13 -1
  210. package/src/parser/helpers.ts +2 -2
  211. package/src/parser/literals.ts +82 -7
  212. package/src/parser/modules.ts +0 -1
  213. package/src/parser/parser.ts +0 -1
  214. package/src/parser/statements.ts +14 -0
  215. package/src/parser/types.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../../../../src/codegen/generator/calls/invocation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../../../../src/codegen/generator/calls/invocation.ts"],"names":[],"mappings":"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"}
@@ -34,15 +34,23 @@ export const literalCallMethods = {
34
34
  const nameNode = property.name;
35
35
  let key;
36
36
  if (nameNode.kind === SyntaxKind.ComputedPropertyName) {
37
- const keyValue = this.emitExpression(nameNode.expression);
38
- key = this.reg();
39
- this.emit(` ${key} = call i64 @xt_to_string(i64 ${keyValue})`);
37
+ // Property keys may be symbols; `xt_set` normalises with
38
+ // `xt_to_property_key`.
39
+ key = this.emitExpression(nameNode.expression);
40
40
  }
41
41
  else {
42
42
  key = this.stringValue(propertyNameText(nameNode));
43
43
  }
44
44
  const value = this.emitExpression(property.initializer);
45
- this.emit(` call i64 @xt_set(i64 ${object}, i64 ${key}, i64 ${value})`);
45
+ if (property.accessor === "get") {
46
+ this.emit(` call i64 @xt_object_define_getter(i64 ${object}, i64 ${key}, i64 ${value})`);
47
+ }
48
+ else if (property.accessor === "set") {
49
+ this.emit(` call i64 @xt_object_define_setter(i64 ${object}, i64 ${key}, i64 ${value})`);
50
+ }
51
+ else {
52
+ this.emit(` call i64 @xt_set(i64 ${object}, i64 ${key}, i64 ${value})`);
53
+ }
46
54
  }
47
55
  else if (property.kind === SyntaxKind.ShorthandPropertyAssignment) {
48
56
  if (property.initializer) {
@@ -1 +1 @@
1
- {"version":3,"file":"literals.js","sourceRoot":"","sources":["../../../../../src/codegen/generator/calls/literals.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,GAIX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAQhD,MAAM,CAAC,MAAM,kBAAkB,GAAuB;IACpD,gBAAgB,CAAC,IAA4B;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,aAAa,CAAC,CAAC;QAC7F,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,iCAAiC,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACtF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,6CAA6C,CAAC,CAAC;QACnE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAE,OAAsC,CAAC,UAAU,CAAC,CAAC;gBACvF,IAAI,CAAC,IAAI,CAAC,mCAAmC,KAAK,SAAS,MAAM,GAAG,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,iCAAiC,KAAK,SAAS,KAAK,GAAG,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iBAAiB,CAAC,IAA6B;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,8BAA8B,CAAC,CAAC;QACrD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,kBAAkB,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAC/B,IAAI,GAAW,CAAC;gBAChB,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,oBAAoB,EAAE,CAAC;oBACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAE,QAAuC,CAAC,UAAU,CAAC,CAAC;oBAC1F,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACjB,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,iCAAiC,QAAQ,GAAG,CAAC,CAAC;gBAClE,CAAC;qBAAM,CAAC;oBACN,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACxD,IAAI,CAAC,IAAI,CAAC,0BAA0B,MAAM,SAAS,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC;YAC3E,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,2BAA2B,EAAE,CAAC;gBACpE,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;oBACzB,oEAAoE;oBACpE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC;oBAC9D,SAAS;gBACX,CAAC;gBACD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,0BAA0B,MAAM,SAAS,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC;YAC3E,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC,aAAa,EAAE,CAAC;gBACtD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAE,QAAuC,CAAC,UAAU,CAAC,CAAC;gBACxF,IAAI,CAAC,IAAI,CAAC,oCAAoC,MAAM,SAAS,MAAM,GAAG,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"literals.js","sourceRoot":"","sources":["../../../../../src/codegen/generator/calls/literals.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,17 @@
1
1
  /**
2
2
  * `super` lowering: parent constructor delegation and parent method calls.
3
3
  */
4
- import { SyntaxKind, } from "../../../ast/nodes.js";
5
4
  export const superCallMethods = {
6
5
  emitSuperConstructor(node) {
7
6
  const thisValue = this.emitThis();
8
7
  const classInfo = this.current.fn.classInfo;
9
8
  const parent = classInfo?.parentExpression;
10
- const unboundBuiltin = parent !== undefined &&
11
- parent.kind === SyntaxKind.Identifier &&
12
- parent.text === "Error" &&
13
- !this.binding.symbolOfIdentifier.get(parent);
14
- if (unboundBuiltin) {
9
+ const errorName = parent ? this.errorFamilyName(parent) : undefined;
10
+ if (errorName) {
15
11
  const args = this.emitArguments(node.arguments);
12
+ const nameValue = this.stringValue(errorName);
16
13
  const result = this.reg();
17
- this.emit(` ${result} = call i64 @xt_error_init(i64 ${thisValue}, i32 ${args.argc}, i64* ${args.ptr})`);
14
+ this.emit(` ${result} = call i64 @xt_error_init(i64 ${thisValue}, i64 ${nameValue}, i32 ${args.argc}, i64* ${args.ptr})`);
18
15
  return result;
19
16
  }
20
17
  const proto = this.reg();
@@ -1 +1 @@
1
- {"version":3,"file":"super.js","sourceRoot":"","sources":["../../../../../src/codegen/generator/calls/super.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,GAIX,MAAM,uBAAuB,CAAC;AAQ/B,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,oBAAoB,CAAC,IAAoB;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC;QAC5C,MAAM,MAAM,GAAG,SAAS,EAAE,gBAAgB,CAAC;QAC3C,MAAM,cAAc,GAClB,MAAM,KAAK,SAAS;YACpB,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU;YACpC,MAAqB,CAAC,IAAI,KAAK,OAAO;YACvC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAoB,CAAC,CAAC;QAC7D,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,kCAAkC,SAAS,SAAS,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACzG,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,4CAA4C,SAAS,GAAG,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,WAAW,4CAA4C,KAAK,GAAG,CAAC,CAAC;QAChF,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,2BAA2B,WAAW,SAAS,GAAG,GAAG,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,sCAAsC,IAAI,SAAS,SAAS,SAAS,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QAC1H,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,IAAoB,EAAE,MAAgC;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,4CAA4C,SAAS,GAAG,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,WAAW,4CAA4C,KAAK,GAAG,CAAC,CAAC;QAChF,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,2BAA2B,WAAW,SAAS,GAAG,GAAG,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,sCAAsC,MAAM,SAAS,SAAS,SAAS,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QAC5H,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"super.js","sourceRoot":"","sources":["../../../../../src/codegen/generator/calls/super.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,8 @@
7
7
  */
8
8
  import { type BindResult, type SymbolInfo } from "../../binder/binder.js";
9
9
  import type { DiagnosticBag } from "../../diagnostics/diagnostic.js";
10
- import { type SourceFileNode, type Node } from "../../ast/nodes.js";
11
- import type { BuiltinFunction, ExtensionModule, ModuleExport } from "../../extensions/registry.js";
10
+ import { type Node, type SourceFileNode } from "../../ast/nodes.js";
11
+ import type { BuiltinFunction, ExtensionModule, ModuleExport, ModuleExports } from "../../extensions/registry.js";
12
12
  import type { CodegenOptions, FunctionState } from "./state.js";
13
13
  export declare class GeneratorContext {
14
14
  readonly binding: BindResult;
@@ -20,6 +20,13 @@ export declare class GeneratorContext {
20
20
  readonly importExports: Map<number, ModuleExport>;
21
21
  /** Imported symbol id -> the namespace it aliases (e.g. `path`). */
22
22
  readonly importNamespaces: Map<number, string>;
23
+ /**
24
+ * Imported symbol id -> the named exports of the module it aliases, for
25
+ * modules that do not expose a runtime namespace dispatcher (`fs`,
26
+ * `child_process`, `crypto`, ...). Lets `import fs from "node:fs"` lower
27
+ * `fs.readFileSync(...)` straight to the module's runtime symbol.
28
+ */
29
+ readonly importModuleExports: Map<number, Readonly<Record<string, ModuleExport>>>;
23
30
  readonly globals: string[];
24
31
  readonly functions: string[];
25
32
  readonly strings: Map<string, {
@@ -38,8 +45,15 @@ export declare class GeneratorContext {
38
45
  * the namespace dispatch tables.
39
46
  */
40
47
  private resolveImports;
48
+ /**
49
+ * Bind a default/namespace import to either the module's runtime namespace
50
+ * dispatcher (when it has one) or its named exports (when it does not).
51
+ */
52
+ private bindModuleAlias;
41
53
  /** Namespace name an imported alias refers to, if any. */
42
54
  namespaceOfSymbol(symbol: SymbolInfo | undefined): string | undefined;
55
+ /** Named exports a default/namespace import aliases, if any. */
56
+ moduleExportsOfSymbol(symbol: SymbolInfo | undefined): ModuleExports | undefined;
43
57
  emit(line: string): void;
44
58
  terminate(line: string): void;
45
59
  reg(): string;
@@ -51,6 +65,11 @@ export declare class GeneratorContext {
51
65
  defineCaptureSlot(symbol: SymbolInfo, box: string): void;
52
66
  readSlot(symbol: SymbolInfo): string;
53
67
  writeSlot(symbol: SymbolInfo, value: string): void;
68
+ /**
69
+ * The name of the builtin Error-family constructor an expression refers to
70
+ * (`extends TypeError`), or `undefined` for a user class / shadowed name.
71
+ */
72
+ errorFamilyName(expression: Node): string | undefined;
54
73
  stringValue(text: string): string;
55
74
  internString(text: string): {
56
75
  label: string;
@@ -9,7 +9,7 @@ import { bind, SymbolKind } from "../../binder/binder.js";
9
9
  import { DiagnosticCode } from "../../diagnostics/diagnostic.js";
10
10
  import { SyntaxKind } from "../../ast/nodes.js";
11
11
  import { i64, XT_UNDEFINED } from "../values.js";
12
- import { escapeBytes, kindName, utf8Bytes } from "./tables.js";
12
+ import { escapeBytes, isErrorFamily, kindName, utf8Bytes } from "./tables.js";
13
13
  export class GeneratorContext {
14
14
  binding;
15
15
  sourceFile;
@@ -20,6 +20,13 @@ export class GeneratorContext {
20
20
  importExports = new Map();
21
21
  /** Imported symbol id -> the namespace it aliases (e.g. `path`). */
22
22
  importNamespaces = new Map();
23
+ /**
24
+ * Imported symbol id -> the named exports of the module it aliases, for
25
+ * modules that do not expose a runtime namespace dispatcher (`fs`,
26
+ * `child_process`, `crypto`, ...). Lets `import fs from "node:fs"` lower
27
+ * `fs.readFileSync(...)` straight to the module's runtime symbol.
28
+ */
29
+ importModuleExports = new Map();
23
30
  globals = [];
24
31
  functions = [];
25
32
  strings = new Map();
@@ -54,10 +61,10 @@ export class GeneratorContext {
54
61
  const clause = declaration.importClause;
55
62
  if (!clause)
56
63
  continue;
57
- if (clause.name && module.namespace) {
64
+ if (clause.name) {
58
65
  const symbol = this.binding.symbolOfDeclaration.get(clause.name);
59
66
  if (symbol)
60
- this.importNamespaces.set(symbol.id, module.namespace);
67
+ this.bindModuleAlias(symbol, module);
61
68
  }
62
69
  const bindings = clause.namedBindings;
63
70
  if (bindings && bindings.kind === SyntaxKind.NamedImports) {
@@ -69,19 +76,37 @@ export class GeneratorContext {
69
76
  this.importExports.set(symbol.id, exported);
70
77
  }
71
78
  }
72
- else if (bindings && bindings.kind === SyntaxKind.NamespaceImport && module.namespace) {
79
+ else if (bindings && bindings.kind === SyntaxKind.NamespaceImport) {
73
80
  const symbol = this.binding.symbolOfDeclaration.get(bindings.name);
74
81
  if (symbol)
75
- this.importNamespaces.set(symbol.id, module.namespace);
82
+ this.bindModuleAlias(symbol, module);
76
83
  }
77
84
  }
78
85
  }
86
+ /**
87
+ * Bind a default/namespace import to either the module's runtime namespace
88
+ * dispatcher (when it has one) or its named exports (when it does not).
89
+ */
90
+ bindModuleAlias(symbol, module) {
91
+ if (module.namespace) {
92
+ this.importNamespaces.set(symbol.id, module.namespace);
93
+ }
94
+ else if (module.exports) {
95
+ this.importModuleExports.set(symbol.id, module.exports);
96
+ }
97
+ }
79
98
  /** Namespace name an imported alias refers to, if any. */
80
99
  namespaceOfSymbol(symbol) {
81
100
  if (!symbol || symbol.kind !== SymbolKind.Import)
82
101
  return undefined;
83
102
  return this.importNamespaces.get(symbol.id);
84
103
  }
104
+ /** Named exports a default/namespace import aliases, if any. */
105
+ moduleExportsOfSymbol(symbol) {
106
+ if (!symbol || symbol.kind !== SymbolKind.Import)
107
+ return undefined;
108
+ return this.importModuleExports.get(symbol.id);
109
+ }
85
110
  // -- emission primitives -------------------------------------------------
86
111
  emit(line) {
87
112
  this.current.buffer.push(line);
@@ -193,6 +218,18 @@ export class GeneratorContext {
193
218
  this.emit(` call i64 @xt_box_set(i64 ${box}, i64 ${value})`);
194
219
  }
195
220
  // -- string pool ---------------------------------------------------------
221
+ /**
222
+ * The name of the builtin Error-family constructor an expression refers to
223
+ * (`extends TypeError`), or `undefined` for a user class / shadowed name.
224
+ */
225
+ errorFamilyName(expression) {
226
+ if (expression.kind !== SyntaxKind.Identifier)
227
+ return undefined;
228
+ const identifier = expression;
229
+ if (this.binding.symbolOfIdentifier.get(identifier))
230
+ return undefined;
231
+ return isErrorFamily(identifier.text) ? identifier.text : undefined;
232
+ }
196
233
  stringValue(text) {
197
234
  const entry = this.internString(text);
198
235
  const result = this.reg();
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/codegen/generator/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/codegen/generator/context.ts"],"names":[],"mappings":"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"}
@@ -169,9 +169,7 @@ export const assignmentExpressionMethods = {
169
169
  const assignment = property;
170
170
  let key;
171
171
  if (assignment.name.kind === SyntaxKind.ComputedPropertyName) {
172
- const keyValue = this.emitExpression(assignment.name.expression);
173
- key = this.reg();
174
- this.emit(` ${key} = call i64 @xt_to_string(i64 ${keyValue})`);
172
+ key = this.emitExpression(assignment.name.expression);
175
173
  }
176
174
  else {
177
175
  key = this.stringValue(propertyNameText(assignment.name));
@@ -1 +1 @@
1
- {"version":3,"file":"assignment.js","sourceRoot":"","sources":["../../../../../src/codegen/generator/expressions/assignment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assignment.js","sourceRoot":"","sources":["../../../../../src/codegen/generator/expressions/assignment.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Primary expression lowering: the dispatcher, identifier/function values,
3
3
  * `this`, `new`, `await` and template literals.
4
4
  */
5
- import { type AwaitExpression, type Expression, type Identifier, type NewExpression, type TemplateLiteral } from "../../../ast/nodes.js";
5
+ import { type AwaitExpression, type Expression, type Identifier, type NewExpression, type TaggedTemplateExpression, type TemplateLiteral, type YieldExpression } from "../../../ast/nodes.js";
6
6
  import { type SymbolInfo } from "../../../binder/binder.js";
7
7
  import type { Generator } from "../generator.js";
8
8
  export interface PrimaryExpressionMethods {
@@ -10,8 +10,10 @@ export interface PrimaryExpressionMethods {
10
10
  emitIdentifier(this: Generator, identifier: Identifier): string;
11
11
  emitFunctionValue(this: Generator, symbol: SymbolInfo): string;
12
12
  emitTemplate(this: Generator, node: TemplateLiteral): string;
13
+ emitTaggedTemplate(this: Generator, node: TaggedTemplateExpression): string;
13
14
  emitThis(this: Generator): string;
14
15
  emitNew(this: Generator, node: NewExpression): string;
15
16
  emitAwait(this: Generator, node: AwaitExpression): string;
17
+ emitYield(this: Generator, node: YieldExpression): string;
16
18
  }
17
19
  export declare const primaryExpressionMethods: PrimaryExpressionMethods;
@@ -6,9 +6,13 @@ import { SyntaxKind, } from "../../../ast/nodes.js";
6
6
  import { SymbolKind } from "../../../binder/binder.js";
7
7
  import { DiagnosticCode } from "../../../diagnostics/diagnostic.js";
8
8
  import { i64, numberLiteral, XT_FALSE, XT_NULL, XT_TRUE, XT_UNDEFINED } from "../../values.js";
9
- import { BUILTIN_FUNCTION_VALUES, CTOR_FUNCTIONS } from "../tables.js";
9
+ import { BUILTIN_FUNCTION_VALUES, CTOR_FUNCTIONS, ERROR_CONSTRUCTORS } from "../tables.js";
10
10
  export const primaryExpressionMethods = {
11
11
  emitExpression(node) {
12
+ /* An optional chain must be lowered as a unit so `?.` short-circuits the
13
+ entire chain (`a?.b.c()`), not just the guarded member. */
14
+ if (this.isOptionalChain(node))
15
+ return this.emitOptionalChain(node);
12
16
  switch (node.kind) {
13
17
  case SyntaxKind.Identifier:
14
18
  return this.emitIdentifier(node);
@@ -44,6 +48,8 @@ export const primaryExpressionMethods = {
44
48
  }
45
49
  case SyntaxKind.TemplateLiteral:
46
50
  return this.emitTemplate(node);
51
+ case SyntaxKind.TaggedTemplateExpression:
52
+ return this.emitTaggedTemplate(node);
47
53
  case SyntaxKind.TrueKeyword:
48
54
  return i64(XT_TRUE);
49
55
  case SyntaxKind.FalseKeyword:
@@ -75,6 +81,8 @@ export const primaryExpressionMethods = {
75
81
  return this.emitNew(node);
76
82
  case SyntaxKind.AwaitExpression:
77
83
  return this.emitAwait(node);
84
+ case SyntaxKind.YieldExpression:
85
+ return this.emitYield(node);
78
86
  case SyntaxKind.ClassExpression: {
79
87
  const info = this.binding.classOfNode.get(node);
80
88
  if (!info) {
@@ -160,6 +168,13 @@ export const primaryExpressionMethods = {
160
168
  this.emit(` ${closure} = call i64 @xt_closure_new(i8* ${cast}, i32 0, i64* null)`);
161
169
  return closure;
162
170
  }
171
+ const errorCtor = ERROR_CONSTRUCTORS[identifier.text];
172
+ if (errorCtor) {
173
+ // A first-class Error-family constructor (`instanceof TypeError`,
174
+ // `typeof RangeError`, `class X extends Error`, ...).
175
+ const nameValue = this.stringValue(identifier.text);
176
+ return this.runtimeCall("xt_error_constructor", [nameValue]);
177
+ }
163
178
  this.diagnostics.error(DiagnosticCode.CannotFindName, `Cannot find name '${identifier.text}'`, identifier, this.sourceFile.fileName);
164
179
  return i64(XT_UNDEFINED);
165
180
  }
@@ -174,6 +189,7 @@ export const primaryExpressionMethods = {
174
189
  this.emit(` ${cast} = bitcast i64 (i64, i64, i32, i64*)* @${this.functionName(fn)} to i8*`);
175
190
  const closure = this.reg();
176
191
  this.emit(` ${closure} = call i64 @xt_closure_new(i8* ${cast}, i32 0, i64* null)`);
192
+ this.emitFunctionMetadata(closure, fn);
177
193
  return closure;
178
194
  },
179
195
  emitThis() {
@@ -189,6 +205,18 @@ export const primaryExpressionMethods = {
189
205
  this.emit(` ${result} = call i64 @xt_await(i64 ${value})`);
190
206
  return result;
191
207
  },
208
+ emitYield(node) {
209
+ if (node.delegate) {
210
+ const delegate = this.emitExpression(node.expression);
211
+ const result = this.reg();
212
+ this.emit(` ${result} = call i64 @xt_yield_star(i64 ${delegate})`);
213
+ return result;
214
+ }
215
+ const value = node.expression ? this.emitExpression(node.expression) : i64(XT_UNDEFINED);
216
+ const result = this.reg();
217
+ this.emit(` ${result} = call i64 @xt_yield(i64 ${value})`);
218
+ return result;
219
+ },
192
220
  emitNew(node) {
193
221
  const callee = node.expression;
194
222
  if (callee.kind === SyntaxKind.Identifier) {
@@ -256,5 +284,75 @@ export const primaryExpressionMethods = {
256
284
  }
257
285
  return accumulator;
258
286
  },
287
+ /**
288
+ * Lower a tagged template: build the (cooked) strings array with a `.raw`
289
+ * sibling and call the tag with it followed by the interpolation values.
290
+ * `String.raw` is the one namespace tag special-cased by the runtime.
291
+ */
292
+ emitTaggedTemplate(node) {
293
+ const template = node.template;
294
+ let cooked;
295
+ let raw;
296
+ let expressions;
297
+ if (template.kind === SyntaxKind.NoSubstitutionTemplateLiteral) {
298
+ cooked = [template.value];
299
+ raw = [template.raw ?? template.value];
300
+ expressions = [];
301
+ }
302
+ else {
303
+ const literal = template;
304
+ cooked = [literal.head, ...literal.spans.map((span) => span.literal)];
305
+ raw = [literal.raw ?? literal.head, ...literal.spans.map((span) => span.raw ?? span.literal)];
306
+ expressions = literal.spans.map((span) => span.expression);
307
+ }
308
+ const makeArray = (items) => {
309
+ const array = this.reg();
310
+ this.emit(` ${array} = call i64 @xt_array_new(i32 0, i64* null)`);
311
+ for (const item of items) {
312
+ const value = this.stringValue(item);
313
+ this.emit(` call i64 @xt_array_push(i64 ${array}, i64 ${value})`);
314
+ }
315
+ return array;
316
+ };
317
+ const strings = makeArray(cooked);
318
+ const rawArray = makeArray(raw);
319
+ const rawKey = this.stringValue("raw");
320
+ this.emit(` call i64 @xt_set(i64 ${strings}, i64 ${rawKey}, i64 ${rawArray})`);
321
+ const argc = String(expressions.length + 1);
322
+ const ptr = `%args${this.current.allocas.length}`;
323
+ this.current.allocas.push(`${ptr} = alloca i64, i32 ${expressions.length + 1}`);
324
+ const first = this.reg();
325
+ this.emit(` ${first} = getelementptr i64, i64* ${ptr}, i32 0`);
326
+ this.emit(` store i64 ${strings}, i64* ${first}`);
327
+ for (let index = 0; index < expressions.length; index++) {
328
+ const value = this.emitExpression(expressions[index]);
329
+ const slot = this.reg();
330
+ this.emit(` ${slot} = getelementptr i64, i64* ${ptr}, i32 ${index + 1}`);
331
+ this.emit(` store i64 ${value}, i64* ${slot}`);
332
+ }
333
+ const tag = node.tag;
334
+ if (tag.kind === SyntaxKind.PropertyAccessExpression) {
335
+ const access = tag;
336
+ const owner = access.expression;
337
+ if (owner.kind === SyntaxKind.Identifier &&
338
+ owner.text === "String" &&
339
+ access.name.text === "raw" &&
340
+ !this.binding.symbolOfIdentifier.get(owner)) {
341
+ const key = this.stringValue("raw");
342
+ const result = this.reg();
343
+ this.emit(` ${result} = call i64 @xt_string_static(i64 ${key}, i32 ${argc}, i64* ${ptr})`);
344
+ return result;
345
+ }
346
+ const object = this.emitExpression(owner);
347
+ const name = this.stringValue(access.name.text);
348
+ const result = this.reg();
349
+ this.emit(` ${result} = call i64 @xt_call_method(i64 ${object}, i64 ${name}, i32 ${argc}, i64* ${ptr})`);
350
+ return result;
351
+ }
352
+ const tagValue = this.emitExpression(tag);
353
+ const result = this.reg();
354
+ this.emit(` ${result} = call i64 @xt_closure_call(i64 ${tagValue}, i32 ${argc}, i64* ${ptr})`);
355
+ return result;
356
+ },
259
357
  };
260
358
  //# sourceMappingURL=primary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"primary.js","sourceRoot":"","sources":["../../../../../src/codegen/generator/expressions/primary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primary.js","sourceRoot":"","sources":["../../../../../src/codegen/generator/expressions/primary.ts"],"names":[],"mappings":"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"}