@tsonic/emitter 0.0.12 → 0.0.13

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 (140) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/array.test.js +6 -6
  3. package/dist/array.test.js.map +1 -1
  4. package/dist/core/attributes.d.ts +43 -0
  5. package/dist/core/attributes.d.ts.map +1 -0
  6. package/dist/core/attributes.js +128 -0
  7. package/dist/core/attributes.js.map +1 -0
  8. package/dist/core/attributes.test.d.ts +5 -0
  9. package/dist/core/attributes.test.d.ts.map +1 -0
  10. package/dist/core/attributes.test.js +296 -0
  11. package/dist/core/attributes.test.js.map +1 -0
  12. package/dist/core/index.d.ts +1 -0
  13. package/dist/core/index.d.ts.map +1 -1
  14. package/dist/core/index.js +1 -0
  15. package/dist/core/index.js.map +1 -1
  16. package/dist/core/module-emitter/static-container.d.ts.map +1 -1
  17. package/dist/core/module-emitter/static-container.js +50 -1
  18. package/dist/core/module-emitter/static-container.js.map +1 -1
  19. package/dist/core/module-emitter.test.js +2 -1
  20. package/dist/core/module-emitter.test.js.map +1 -1
  21. package/dist/core/module-map.d.ts.map +1 -1
  22. package/dist/core/module-map.js +5 -1
  23. package/dist/core/module-map.js.map +1 -1
  24. package/dist/core/module-map.test.d.ts +8 -0
  25. package/dist/core/module-map.test.d.ts.map +1 -0
  26. package/dist/core/module-map.test.js +94 -0
  27. package/dist/core/module-map.test.js.map +1 -0
  28. package/dist/core/type-compatibility.d.ts +6 -1
  29. package/dist/core/type-compatibility.d.ts.map +1 -1
  30. package/dist/core/type-compatibility.js +12 -22
  31. package/dist/core/type-compatibility.js.map +1 -1
  32. package/dist/core/type-resolution.d.ts +2 -2
  33. package/dist/core/type-resolution.js +6 -6
  34. package/dist/core/type-resolution.js.map +1 -1
  35. package/dist/emitter.d.ts.map +1 -1
  36. package/dist/emitter.js +47 -1
  37. package/dist/emitter.js.map +1 -1
  38. package/dist/expression-emitter.d.ts.map +1 -1
  39. package/dist/expression-emitter.js +3 -3
  40. package/dist/expression-emitter.js.map +1 -1
  41. package/dist/expressions/access.d.ts.map +1 -1
  42. package/dist/expressions/access.js +46 -15
  43. package/dist/expressions/access.js.map +1 -1
  44. package/dist/expressions/calls.d.ts.map +1 -1
  45. package/dist/expressions/calls.js +86 -13
  46. package/dist/expressions/calls.js.map +1 -1
  47. package/dist/expressions/collections.d.ts.map +1 -1
  48. package/dist/expressions/collections.js +44 -35
  49. package/dist/expressions/collections.js.map +1 -1
  50. package/dist/expressions/identifiers.d.ts.map +1 -1
  51. package/dist/expressions/identifiers.js +1 -0
  52. package/dist/expressions/identifiers.js.map +1 -1
  53. package/dist/expressions/index.test.js +3 -1
  54. package/dist/expressions/index.test.js.map +1 -1
  55. package/dist/expressions/literals.d.ts +7 -15
  56. package/dist/expressions/literals.d.ts.map +1 -1
  57. package/dist/expressions/literals.js +15 -99
  58. package/dist/expressions/literals.js.map +1 -1
  59. package/dist/expressions/literals.test.js +11 -2
  60. package/dist/expressions/literals.test.js.map +1 -1
  61. package/dist/expressions/operators.d.ts +25 -11
  62. package/dist/expressions/operators.d.ts.map +1 -1
  63. package/dist/expressions/operators.js +151 -107
  64. package/dist/expressions/operators.js.map +1 -1
  65. package/dist/expressions/other.d.ts +3 -0
  66. package/dist/expressions/other.d.ts.map +1 -1
  67. package/dist/expressions/other.js +18 -1
  68. package/dist/expressions/other.js.map +1 -1
  69. package/dist/generator.test.js +2 -2
  70. package/dist/generator.test.js.map +1 -1
  71. package/dist/golden-tests/discovery.d.ts +14 -3
  72. package/dist/golden-tests/discovery.d.ts.map +1 -1
  73. package/dist/golden-tests/discovery.js +93 -10
  74. package/dist/golden-tests/discovery.js.map +1 -1
  75. package/dist/golden-tests/index.d.ts +1 -1
  76. package/dist/golden-tests/index.d.ts.map +1 -1
  77. package/dist/golden-tests/index.js.map +1 -1
  78. package/dist/golden-tests/runner.d.ts +1 -0
  79. package/dist/golden-tests/runner.d.ts.map +1 -1
  80. package/dist/golden-tests/runner.js +30 -27
  81. package/dist/golden-tests/runner.js.map +1 -1
  82. package/dist/golden-tests/types.d.ts +7 -0
  83. package/dist/golden-tests/types.d.ts.map +1 -1
  84. package/dist/golden.test.d.ts +12 -5
  85. package/dist/golden.test.d.ts.map +1 -1
  86. package/dist/golden.test.js +40 -21
  87. package/dist/golden.test.js.map +1 -1
  88. package/dist/integration.test.js +8 -8
  89. package/dist/integration.test.js.map +1 -1
  90. package/dist/invariants/emitter-globals-subset.test.js +4 -4
  91. package/dist/invariants/emitter-globals-subset.test.js.map +1 -1
  92. package/dist/invariants/numeric-proof-contract.test.js +20 -15
  93. package/dist/invariants/numeric-proof-contract.test.js.map +1 -1
  94. package/dist/specialization/generic-functions.test.js +366 -0
  95. package/dist/specialization/generic-functions.test.js.map +1 -1
  96. package/dist/specialization/interfaces.test.js +6 -6
  97. package/dist/specialization/interfaces.test.js.map +1 -1
  98. package/dist/specialization/type-aliases.test.js +88 -5
  99. package/dist/specialization/type-aliases.test.js.map +1 -1
  100. package/dist/statements/classes/members/methods.d.ts.map +1 -1
  101. package/dist/statements/classes/members/methods.js +13 -4
  102. package/dist/statements/classes/members/methods.js.map +1 -1
  103. package/dist/statements/classes/members/properties.d.ts.map +1 -1
  104. package/dist/statements/classes/members/properties.js +10 -1
  105. package/dist/statements/classes/members/properties.js.map +1 -1
  106. package/dist/statements/classes/properties.d.ts.map +1 -1
  107. package/dist/statements/classes/properties.js +4 -0
  108. package/dist/statements/classes/properties.js.map +1 -1
  109. package/dist/statements/control/conditionals.d.ts.map +1 -1
  110. package/dist/statements/control/conditionals.js +138 -1
  111. package/dist/statements/control/conditionals.js.map +1 -1
  112. package/dist/statements/declarations/classes.d.ts.map +1 -1
  113. package/dist/statements/declarations/classes.js +7 -1
  114. package/dist/statements/declarations/classes.js.map +1 -1
  115. package/dist/statements/declarations/functions.d.ts.map +1 -1
  116. package/dist/statements/declarations/functions.js +7 -1
  117. package/dist/statements/declarations/functions.js.map +1 -1
  118. package/dist/statements/declarations/structs.test.js +7 -5
  119. package/dist/statements/declarations/structs.test.js.map +1 -1
  120. package/dist/statements/declarations/type-aliases.d.ts.map +1 -1
  121. package/dist/statements/declarations/type-aliases.js +7 -8
  122. package/dist/statements/declarations/type-aliases.js.map +1 -1
  123. package/dist/statements/declarations/variables.d.ts.map +1 -1
  124. package/dist/statements/declarations/variables.js +54 -2
  125. package/dist/statements/declarations/variables.js.map +1 -1
  126. package/dist/statements/index.test.js +2 -3
  127. package/dist/statements/index.test.js.map +1 -1
  128. package/dist/types/parameters.d.ts.map +1 -1
  129. package/dist/types/parameters.js +29 -0
  130. package/dist/types/parameters.js.map +1 -1
  131. package/dist/types/primitives.d.ts +12 -1
  132. package/dist/types/primitives.d.ts.map +1 -1
  133. package/dist/types/primitives.js +14 -1
  134. package/dist/types/primitives.js.map +1 -1
  135. package/dist/types/references.d.ts.map +1 -1
  136. package/dist/types/references.js +19 -12
  137. package/dist/types/references.js.map +1 -1
  138. package/dist/types/references.test.js +6 -8
  139. package/dist/types/references.test.js.map +1 -1
  140. package/package.json +5 -2
@@ -1,37 +1,117 @@
1
1
  /**
2
2
  * Test scenario discovery
3
+ *
4
+ * Directory structure:
5
+ * testcases/
6
+ * ├── common/ # Tests that work in BOTH modes
7
+ * │ ├── <category>/<test>/ # .ts sources + config.yaml
8
+ * │ ├── dotnet/<category>/<test>/ # Expected .cs for dotnet mode
9
+ * │ └── js/<category>/<test>/ # Expected .cs for js mode
10
+ * └── js-only/ # Tests that ONLY work in JS mode
11
+ * └── <category>/<test>/ # .ts, config.yaml, AND .cs together
3
12
  */
4
13
  import * as fs from "fs";
5
14
  import * as path from "path";
6
15
  import { parseConfigYaml } from "./config-parser.js";
7
16
  /**
8
- * Discover all test scenarios by walking the testcases directory (synchronous)
17
+ * Discover all test scenarios for a given runtime mode
18
+ * - dotnet mode: only common/ tests
19
+ * - js mode: common/ + js-only/ tests
9
20
  */
10
- export const discoverScenarios = (baseDir) => {
21
+ export const discoverScenarios = (baseDir, runtimeMode) => {
22
+ const commonDir = path.join(baseDir, "common");
23
+ const jsOnlyDir = path.join(baseDir, "js-only");
24
+ // Common tests - source in common/, expected in common/{dotnet|js}/
25
+ const commonScenarios = discoverCommonScenarios(commonDir, runtimeMode);
26
+ // JS-only tests - only for js mode, source and expected together
27
+ const jsOnlyScenarios = runtimeMode === "js" ? discoverJsOnlyScenarios(jsOnlyDir) : [];
28
+ return [...commonScenarios, ...jsOnlyScenarios];
29
+ };
30
+ /**
31
+ * Discover scenarios from common/ directory
32
+ * Source files are in common/<category>/<test>/
33
+ * Expected .cs files are in common/{dotnet|js}/<category>/<test>/
34
+ */
35
+ const discoverCommonScenarios = (commonDir, runtimeMode) => {
36
+ const scenarios = [];
37
+ const expectedBaseDir = path.join(commonDir, runtimeMode);
38
+ const walk = (dir, pathParts) => {
39
+ // Skip dotnet/ and js/ subdirectories (they contain expected output, not sources)
40
+ const dirName = path.basename(dir);
41
+ if (dirName === "dotnet" || dirName === "js") {
42
+ return;
43
+ }
44
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
45
+ const hasConfig = entries.some((e) => e.name === "config.yaml");
46
+ if (hasConfig) {
47
+ const configPath = path.join(dir, "config.yaml");
48
+ const configContent = fs.readFileSync(configPath, "utf-8");
49
+ const testEntries = parseConfigYaml(configContent);
50
+ for (const entry of testEntries) {
51
+ if (!entry.input.endsWith(".ts")) {
52
+ throw new Error(`Invalid input (must end with .ts): ${entry.input} (config: ${configPath})`);
53
+ }
54
+ const inputPath = path.join(dir, entry.input);
55
+ const baseName = path.basename(entry.input, ".ts");
56
+ // Expected path is in common/{dotnet|js}/<pathParts>/<baseName>.cs
57
+ const expectedPath = path.join(expectedBaseDir, ...pathParts, `${baseName}.cs`);
58
+ if (!fs.existsSync(inputPath)) {
59
+ throw new Error(`Input file not found: ${inputPath} (title: "${entry.title}", config: ${configPath})`);
60
+ }
61
+ const expectDiagnostics = entry.expectDiagnostics;
62
+ if (!expectDiagnostics?.length) {
63
+ if (!fs.existsSync(expectedPath)) {
64
+ throw new Error(`Expected file not found: ${expectedPath} (title: "${entry.title}", config: ${configPath})`);
65
+ }
66
+ }
67
+ scenarios.push({
68
+ pathParts: ["common", ...pathParts],
69
+ title: entry.title,
70
+ inputPath,
71
+ expectedPath: expectDiagnostics?.length ? undefined : expectedPath,
72
+ expectDiagnostics,
73
+ expectDiagnosticsMode: entry.expectDiagnosticsMode,
74
+ runtimeMode,
75
+ });
76
+ }
77
+ }
78
+ // Recurse into subdirectories (except dotnet/js)
79
+ for (const entry of entries) {
80
+ if (entry.isDirectory() &&
81
+ entry.name !== "dotnet" &&
82
+ entry.name !== "js") {
83
+ walk(path.join(dir, entry.name), [...pathParts, entry.name]);
84
+ }
85
+ }
86
+ };
87
+ if (fs.existsSync(commonDir)) {
88
+ walk(commonDir, []);
89
+ }
90
+ return scenarios;
91
+ };
92
+ /**
93
+ * Discover scenarios from js-only/ directory
94
+ * Source and expected files are in the same directory
95
+ */
96
+ const discoverJsOnlyScenarios = (jsOnlyDir) => {
11
97
  const scenarios = [];
12
98
  const walk = (dir, pathParts) => {
13
99
  const entries = fs.readdirSync(dir, { withFileTypes: true });
14
- // Check if this directory contains config.yaml
15
100
  const hasConfig = entries.some((e) => e.name === "config.yaml");
16
101
  if (hasConfig) {
17
- // This is a test directory - read config
18
102
  const configPath = path.join(dir, "config.yaml");
19
103
  const configContent = fs.readFileSync(configPath, "utf-8");
20
104
  const testEntries = parseConfigYaml(configContent);
21
- // Create scenarios for each test entry
22
105
  for (const entry of testEntries) {
23
- // Defensive check: parser should enforce this, but double-check
24
106
  if (!entry.input.endsWith(".ts")) {
25
107
  throw new Error(`Invalid input (must end with .ts): ${entry.input} (config: ${configPath})`);
26
108
  }
27
109
  const inputPath = path.join(dir, entry.input);
28
110
  const baseName = path.basename(entry.input, ".ts");
29
111
  const expectedPath = path.join(dir, `${baseName}.cs`);
30
- // Verify input file exists
31
112
  if (!fs.existsSync(inputPath)) {
32
113
  throw new Error(`Input file not found: ${inputPath} (title: "${entry.title}", config: ${configPath})`);
33
114
  }
34
- // Only require .cs file if not expecting diagnostics
35
115
  const expectDiagnostics = entry.expectDiagnostics;
36
116
  if (!expectDiagnostics?.length) {
37
117
  if (!fs.existsSync(expectedPath)) {
@@ -39,12 +119,13 @@ export const discoverScenarios = (baseDir) => {
39
119
  }
40
120
  }
41
121
  scenarios.push({
42
- pathParts,
122
+ pathParts: ["js-only", ...pathParts],
43
123
  title: entry.title,
44
124
  inputPath,
45
125
  expectedPath: expectDiagnostics?.length ? undefined : expectedPath,
46
126
  expectDiagnostics,
47
127
  expectDiagnosticsMode: entry.expectDiagnosticsMode,
128
+ runtimeMode: "js",
48
129
  });
49
130
  }
50
131
  }
@@ -55,7 +136,9 @@ export const discoverScenarios = (baseDir) => {
55
136
  }
56
137
  }
57
138
  };
58
- walk(baseDir, []);
139
+ if (fs.existsSync(jsOnlyDir)) {
140
+ walk(jsOnlyDir, []);
141
+ }
59
142
  return scenarios;
60
143
  };
61
144
  //# sourceMappingURL=discovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/golden-tests/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/golden-tests/discovery.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Golden test harness - Public API
3
3
  */
4
- export type { TestEntry, Scenario, DescribeNode } from "./types.js";
4
+ export type { TestEntry, Scenario, DescribeNode, RuntimeMode, } from "./types.js";
5
5
  export { parseConfigYaml } from "./config-parser.js";
6
6
  export { discoverScenarios } from "./discovery.js";
7
7
  export { buildDescribeTree } from "./tree-builder.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/golden-tests/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/golden-tests/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/golden-tests/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/golden-tests/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -4,6 +4,7 @@
4
4
  import { Scenario } from "./types.js";
5
5
  /**
6
6
  * Normalize C# output for comparison
7
+ * Strips the header (Generated from, Generated at, WARNING) and normalizes whitespace
7
8
  */
8
9
  export declare const normalizeCs: (code: string) => string;
9
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/golden-tests/runner.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAmB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWvD;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAa1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,GAAU,UAAU,QAAQ,KAAG,OAAO,CAAC,IAAI,CAqKlE,CAAC"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/golden-tests/runner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EAAmB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAYvD;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAkB1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,GAAU,UAAU,QAAQ,KAAG,OAAO,CAAC,IAAI,CAyKlE,CAAC"}
@@ -5,28 +5,28 @@ import { expect } from "chai";
5
5
  import * as fs from "fs";
6
6
  import * as path from "path";
7
7
  import { fileURLToPath } from "url";
8
- import { compile, buildIr, runNumericProofPass } from "@tsonic/frontend";
8
+ import { compile, buildIr, runNumericProofPass, runAttributeCollectionPass, } from "@tsonic/frontend";
9
9
  import { emitCSharpFiles } from "../emitter.js";
10
- import { generateFileHeader } from "../constants.js";
11
- // Resolve paths to js-globals and types packages for golden tests
10
+ // Resolve paths to globals packages for golden tests
12
11
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
13
12
  const monorepoRoot = path.resolve(__dirname, "../../../..");
13
+ const globalsPath = path.join(monorepoRoot, "node_modules/@tsonic/globals");
14
14
  const jsGlobalsPath = path.join(monorepoRoot, "node_modules/@tsonic/js-globals");
15
- const typesPath = path.join(monorepoRoot, "node_modules/@tsonic/types");
15
+ const corePath = path.join(monorepoRoot, "node_modules/@tsonic/core");
16
16
  /**
17
17
  * Normalize C# output for comparison
18
+ * Strips the header (Generated from, Generated at, WARNING) and normalizes whitespace
18
19
  */
19
20
  export const normalizeCs = (code) => {
20
- return (code
21
+ const lines = code.trim().replace(/\r\n/g, "\n").split("\n");
22
+ // Find where the body starts (namespace line)
23
+ const bodyStartIndex = lines.findIndex((line, i) => i > 0 && line.startsWith("namespace"));
24
+ // Strip header if found, otherwise use full code
25
+ const body = bodyStartIndex > 0 ? lines.slice(bodyStartIndex).join("\n") : code;
26
+ return (body
21
27
  .trim()
22
- // Normalize line endings
23
- .replace(/\r\n/g, "\n")
24
- // Remove trailing whitespace
25
- .replace(/\s+$/gm, "")
26
- // Normalize timestamp line (make comparison timestamp-agnostic)
27
- .replace(/\/\/ Generated at: .+/, "// Generated at: TIMESTAMP")
28
- // Normalize file path to just filename (strip directory path)
29
- .replace(/\/\/ Generated from: .+\/([^/]+)$/, "// Generated from: $1"));
28
+ // Remove trailing whitespace per line
29
+ .replace(/\s+$/gm, ""));
30
30
  };
31
31
  /**
32
32
  * Run a single test scenario
@@ -40,12 +40,15 @@ export const runScenario = async (scenario) => {
40
40
  const namespaceParts = scenario.pathParts.map((part) => part.replace(/-/g, "")); // Strip hyphens
41
41
  const rootNamespace = ["TestCases", ...namespaceParts].join(".");
42
42
  // Step 1: Compile TypeScript → Program
43
- // Use js-globals for golden tests (JS mode types with int type alias for index-space values)
43
+ // Use appropriate typeRoots based on runtime mode
44
+ const typeRoots = scenario.runtimeMode === "js"
45
+ ? [globalsPath, jsGlobalsPath, corePath]
46
+ : [globalsPath, corePath];
44
47
  const compileResult = compile([scenario.inputPath], {
45
48
  projectRoot: monorepoRoot, // Use monorepo root for node_modules resolution
46
49
  sourceRoot,
47
50
  rootNamespace,
48
- typeRoots: [jsGlobalsPath, typesPath],
51
+ typeRoots,
49
52
  });
50
53
  // Handle expected diagnostics tests
51
54
  if (scenario.expectDiagnostics?.length) {
@@ -110,10 +113,18 @@ export const runScenario = async (scenario) => {
110
113
  .join("\n");
111
114
  throw new Error(`Numeric proof validation failed:\n${errors}`);
112
115
  }
116
+ // Step 2.6: Run attribute collection pass (extracts A.on(X).type(Y) markers)
117
+ const attributeResult = runAttributeCollectionPass(proofResult.modules);
118
+ if (!attributeResult.ok) {
119
+ const errors = attributeResult.diagnostics
120
+ .map((d) => `${d.code}: ${d.message}`)
121
+ .join("\n");
122
+ throw new Error(`Attribute collection failed:\n${errors}`);
123
+ }
113
124
  // Step 3: Emit IR → C#
114
125
  // Note: Don't set entryPointPath - golden tests are NOT entry points
115
- // Use the proof-annotated modules from the proof pass
116
- const emitResult = emitCSharpFiles(proofResult.modules, {
126
+ // Use the processed modules from the attribute pass
127
+ const emitResult = emitCSharpFiles(attributeResult.modules, {
117
128
  rootNamespace,
118
129
  });
119
130
  if (!emitResult.ok) {
@@ -134,19 +145,11 @@ export const runScenario = async (scenario) => {
134
145
  if (!actualCs) {
135
146
  throw new Error(`Generated file key exists but content is missing: ${generatedKey}`);
136
147
  }
137
- // Read expected output (without header) - only needed for non-diagnostic tests
148
+ // Read expected output (includes header) - only needed for non-diagnostic tests
138
149
  if (!scenario.expectedPath) {
139
150
  throw new Error(`Expected path missing for successful test: ${scenario.inputPath}`);
140
151
  }
141
- const expectedCsBody = fs.readFileSync(scenario.expectedPath, "utf-8");
142
- // Generate expected header using shared constant (with TIMESTAMP placeholder)
143
- // Use just the filename for comparison (actual files may have full paths)
144
- const fileName = path.basename(scenario.inputPath);
145
- const expectedHeader = generateFileHeader(fileName, {
146
- timestamp: "TIMESTAMP",
147
- });
148
- // Combine header with expected body
149
- const expectedCs = expectedHeader + expectedCsBody;
152
+ const expectedCs = fs.readFileSync(scenario.expectedPath, "utf-8");
150
153
  // Normalize and compare
151
154
  const normalizedActual = normalizeCs(actualCs);
152
155
  const normalizedExpected = normalizeCs(expectedCs);
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/golden-tests/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/golden-tests/runner.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,12 @@
1
1
  /**
2
2
  * Golden test types
3
3
  */
4
+ /**
5
+ * Runtime mode for golden tests:
6
+ * - "dotnet": uses @tsonic/globals only (native .NET APIs)
7
+ * - "js": uses @tsonic/globals + @tsonic/js-globals (JSRuntime APIs)
8
+ */
9
+ export type RuntimeMode = "dotnet" | "js";
4
10
  /**
5
11
  * Diagnostics matching mode:
6
12
  * - "contains": expected codes must be present, extra codes allowed (default)
@@ -20,6 +26,7 @@ export type Scenario = {
20
26
  readonly expectedPath?: string;
21
27
  readonly expectDiagnostics?: readonly string[];
22
28
  readonly expectDiagnosticsMode?: DiagnosticsMode;
29
+ readonly runtimeMode: RuntimeMode;
23
30
  };
24
31
  export type DescribeNode = {
25
32
  readonly name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/golden-tests/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,OAAO,CAAC;AAEnD,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,eAAe,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,eAAe,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/golden-tests/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE1C;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,OAAO,CAAC;AAEnD,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,eAAe,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,eAAe,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB,CAAC"}
@@ -1,11 +1,18 @@
1
1
  /**
2
2
  * Golden Test Harness for Tsonic Emitter
3
3
  *
4
- * Automatically discovers and runs test cases from testcases/ directory.
5
- * Each directory with config.yaml defines tests:
6
- * - config.yaml: List of tests (input.ts expected output)
7
- * - FileName.ts: TypeScript source
8
- * - FileName.cs: Expected C# output
4
+ * Directory structure:
5
+ * testcases/
6
+ * ├── common/ # Tests that work in BOTH modes
7
+ * │ ├── <category>/<test>/ # .ts sources + config.yaml
8
+ * │ ├── dotnet/<category>/<test>/ # Expected .cs for dotnet mode
9
+ * │ └── js/<category>/<test>/ # Expected .cs for js mode
10
+ * └── js-only/ # Tests that ONLY work in JS mode
11
+ * └── <category>/<test>/ # .ts, config.yaml, AND .cs together
12
+ *
13
+ * Two modes:
14
+ * - dotnet: common/ tests only, uses @tsonic/globals (native .NET APIs)
15
+ * - js: common/ + js-only/ tests, uses @tsonic/globals + @tsonic/js-globals
9
16
  */
10
17
  export {};
11
18
  //# sourceMappingURL=golden.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"golden.test.d.ts","sourceRoot":"","sources":["../src/golden.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
1
+ {"version":3,"file":"golden.test.d.ts","sourceRoot":"","sources":["../src/golden.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
@@ -1,35 +1,54 @@
1
1
  /**
2
2
  * Golden Test Harness for Tsonic Emitter
3
3
  *
4
- * Automatically discovers and runs test cases from testcases/ directory.
5
- * Each directory with config.yaml defines tests:
6
- * - config.yaml: List of tests (input.ts expected output)
7
- * - FileName.ts: TypeScript source
8
- * - FileName.cs: Expected C# output
4
+ * Directory structure:
5
+ * testcases/
6
+ * ├── common/ # Tests that work in BOTH modes
7
+ * │ ├── <category>/<test>/ # .ts sources + config.yaml
8
+ * │ ├── dotnet/<category>/<test>/ # Expected .cs for dotnet mode
9
+ * │ └── js/<category>/<test>/ # Expected .cs for js mode
10
+ * └── js-only/ # Tests that ONLY work in JS mode
11
+ * └── <category>/<test>/ # .ts, config.yaml, AND .cs together
12
+ *
13
+ * Two modes:
14
+ * - dotnet: common/ tests only, uses @tsonic/globals (native .NET APIs)
15
+ * - js: common/ + js-only/ tests, uses @tsonic/globals + @tsonic/js-globals
9
16
  */
17
+ import { describe } from "mocha";
10
18
  import * as path from "path";
11
19
  import { fileURLToPath } from "url";
12
20
  import { discoverScenarios, buildDescribeTree, registerNode, } from "./golden-tests/index.js";
13
21
  const __filename = fileURLToPath(import.meta.url);
14
22
  const __dirname = path.dirname(__filename);
15
- const TESTCASES_DIR = path.join(__dirname, "../testcases");
16
23
  /**
17
- * Main test suite setup (synchronous discovery for Mocha compatibility)
24
+ * Setup tests for a specific runtime mode
18
25
  */
19
- try {
20
- const scenarios = discoverScenarios(TESTCASES_DIR);
21
- if (scenarios.length === 0) {
22
- console.warn("⚠️ No golden test cases found in testcases/");
23
- }
24
- else {
25
- const tree = buildDescribeTree(scenarios);
26
- if (tree) {
27
- registerNode(tree);
26
+ const setupMode = (mode) => {
27
+ const testcasesDir = path.join(__dirname, "../testcases");
28
+ try {
29
+ const scenarios = discoverScenarios(testcasesDir, mode);
30
+ if (scenarios.length === 0) {
31
+ console.warn(`⚠️ No golden test cases found for ${mode} mode`);
32
+ }
33
+ else {
34
+ const tree = buildDescribeTree(scenarios);
35
+ if (tree) {
36
+ registerNode(tree);
37
+ }
28
38
  }
29
39
  }
30
- }
31
- catch (error) {
32
- console.error("❌ Failed to setup golden tests:", error);
33
- throw error;
34
- }
40
+ catch (error) {
41
+ console.error(`❌ Failed to setup ${mode} mode golden tests:`, error);
42
+ throw error;
43
+ }
44
+ };
45
+ /**
46
+ * Main test suite setup (synchronous discovery for Mocha compatibility)
47
+ */
48
+ describe("Golden Tests (dotnet mode)", () => {
49
+ setupMode("dotnet");
50
+ });
51
+ describe("Golden Tests (js mode)", () => {
52
+ setupMode("js");
53
+ });
35
54
  //# sourceMappingURL=golden.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"golden.test.js","sourceRoot":"","sources":["../src/golden.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,yBAAyB,CAAC;AAEjC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAE3D;;GAEG;AACH,IAAI,CAAC;IACH,MAAM,SAAS,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAEnD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,IAAI,EAAE,CAAC;YACT,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;AACH,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;IACxD,MAAM,KAAK,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"golden.test.js","sourceRoot":"","sources":["../src/golden.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,yBAAyB,CAAC;AAGjC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C;;GAEG;AACH,MAAM,SAAS,GAAG,CAAC,IAAiB,EAAQ,EAAE;IAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAE1D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAExD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,sCAAsC,IAAI,OAAO,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,IAAI,EAAE,CAAC;gBACT,YAAY,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,qBAAqB,EAAE,KAAK,CAAC,CAAC;QACrE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,SAAS,CAAC,QAAQ,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,SAAS,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -76,7 +76,7 @@ describe("End-to-End Integration", () => {
76
76
  const csharp = compileToCSharp(source);
77
77
  // Should emit type alias as class
78
78
  expect(csharp).to.include("class HasId__Alias");
79
- expect(csharp).to.match(/double\s+id\s*\{\s*get;\s*set;/);
79
+ expect(csharp).to.match(/required\s+double\s+id\s*\{\s*get;\s*set;/);
80
80
  // Should use type alias as constraint
81
81
  expect(csharp).to.include("where T : HasId");
82
82
  // Should have function
@@ -96,9 +96,9 @@ describe("End-to-End Integration", () => {
96
96
  // Should emit C# class (not interface)
97
97
  expect(csharp).to.match(/public\s+class\s+User/);
98
98
  expect(csharp).not.to.include("interface User");
99
- // Should have auto-properties
100
- expect(csharp).to.match(/public\s+double\s+id\s*\{\s*get;\s*set;/);
101
- expect(csharp).to.match(/public\s+string\s+name\s*\{\s*get;\s*set;/);
99
+ // Should have auto-properties (required for non-optional)
100
+ expect(csharp).to.match(/public\s+required\s+double\s+id\s*\{\s*get;\s*set;/);
101
+ expect(csharp).to.match(/public\s+required\s+string\s+name\s*\{\s*get;\s*set;/);
102
102
  // Optional property should be nullable
103
103
  expect(csharp).to.match(/public\s+string\?\s+email\s*\{\s*get;\s*set;/);
104
104
  });
@@ -112,8 +112,8 @@ describe("End-to-End Integration", () => {
112
112
  const csharp = compileToCSharp(source);
113
113
  // Should emit sealed class with __Alias suffix
114
114
  expect(csharp).to.match(/public\s+sealed\s+class\s+Point__Alias/);
115
- expect(csharp).to.match(/public\s+double\s+x\s*\{\s*get;\s*set;/);
116
- expect(csharp).to.match(/public\s+double\s+y\s*\{\s*get;\s*set;/);
115
+ expect(csharp).to.match(/public\s+required\s+double\s+x\s*\{\s*get;\s*set;/);
116
+ expect(csharp).to.match(/public\s+required\s+double\s+y\s*\{\s*get;\s*set;/);
117
117
  });
118
118
  it("should compile generic interface", () => {
119
119
  const source = `
@@ -125,8 +125,8 @@ describe("End-to-End Integration", () => {
125
125
  const csharp = compileToCSharp(source);
126
126
  // Should emit generic class
127
127
  expect(csharp).to.match(/public\s+class\s+Result\s*<T>/);
128
- expect(csharp).to.match(/public\s+bool\s+ok/);
129
- expect(csharp).to.match(/public\s+T\s+value/);
128
+ expect(csharp).to.match(/public\s+required\s+bool\s+ok/);
129
+ expect(csharp).to.match(/public\s+required\s+T\s+value/);
130
130
  });
131
131
  });
132
132
  describe("Generic Classes", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../src/integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../src/integration.test.ts"],"names":[],"mappings":"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"}
@@ -38,10 +38,10 @@ const EMITTER_SPECIAL_CASES = {
38
38
  */
39
39
  const REQUIRED_IN_JS_GLOBALS = ["Array", "Promise", "PromiseLike", "Error"];
40
40
  /**
41
- * Types that MUST be declared in dotnet-globals for the emitter to work correctly.
41
+ * Types that MUST be declared in base globals for the emitter to work correctly.
42
42
  * These are types that have special-case handling when runtime === "dotnet".
43
43
  */
44
- const REQUIRED_IN_DOTNET_GLOBALS = ["Array", "Promise", "PromiseLike"];
44
+ const REQUIRED_IN_BASE_GLOBALS = ["Array", "Promise", "PromiseLike"];
45
45
  /**
46
46
  * Types that are NOT in any globals package.
47
47
  * These must NOT be special-cased because TS name resolution will fail first.
@@ -82,11 +82,11 @@ describe("Emitter-Globals Subset Invariant", () => {
82
82
  // This assertion documents the invariant
83
83
  assert.deepEqual(jsSpecialCases.sort(), REQUIRED_IN_JS_GLOBALS.sort(), "JS-mode special cases must match required js-globals types");
84
84
  });
85
- it("all dotnet-mode special cases are in dotnet-globals", () => {
85
+ it("all dotnet-mode special cases are in base globals", () => {
86
86
  const dotnetSpecialCases = Object.entries(EMITTER_SPECIAL_CASES)
87
87
  .filter(([_, modes]) => modes.dotnet)
88
88
  .map(([name]) => name);
89
- assert.deepEqual(dotnetSpecialCases.sort(), REQUIRED_IN_DOTNET_GLOBALS.sort(), "Dotnet-mode special cases must match required dotnet-globals types");
89
+ assert.deepEqual(dotnetSpecialCases.sort(), REQUIRED_IN_BASE_GLOBALS.sort(), "Dotnet-mode special cases must match required base globals types");
90
90
  });
91
91
  it("Error is only special-cased in JS mode", () => {
92
92
  const errorConfig = EMITTER_SPECIAL_CASES.Error;
@@ -1 +1 @@
1
- {"version":3,"file":"emitter-globals-subset.test.js","sourceRoot":"","sources":["../../src/invariants/emitter-globals-subset.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE1C;;;;;;;;GAQG;AACH,MAAM,qBAAqB,GAAG;IAC5B,8CAA8C;IAC9C,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAEjC,oDAAoD;IACpD,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAEnC,oDAAoD;IACpD,WAAW,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAEvC,4DAA4D;IAC5D,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;CAC1B,CAAC;AAEX;;;GAGG;AACH,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,wBAAwB,GAAG;IAC/B,KAAK,EAAE,mDAAmD;IAC1D,KAAK,EAAE,mDAAmD;IAC1D,SAAS,EAAE,iBAAiB;IAC5B,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,oDAAoD;IAC5D,UAAU,EAAE,iBAAiB;IAC7B,YAAY,EAAE,iBAAiB;IAC/B,OAAO,EAAE,iBAAiB;IAC1B,UAAU,EAAE,iBAAiB;CAC9B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,+BAA+B,GAAG;IACtC,SAAS,EAAE,0CAA0C;IACrD,MAAM,EAAE,0CAA0C;IAClD,MAAM,EAAE,0CAA0C;IAClD,QAAQ,EAAE,oDAAoD;CAC/D,CAAC;AAEF,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAChE,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC;iBACzD,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;iBAChC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAEzB,yCAAyC;YACzC,MAAM,CAAC,SAAS,CACd,cAAc,CAAC,IAAI,EAAE,EACrB,sBAAsB,CAAC,IAAI,EAAE,EAC7B,4DAA4D,CAC7D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC;iBAC7D,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;iBACpC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAEzB,MAAM,CAAC,SAAS,CACd,kBAAkB,CAAC,IAAI,EAAE,EACzB,0BAA0B,CAAC,IAAI,EAAE,EACjC,oEAAoE,CACrE,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC;YAChD,MAAM,CAAC,KAAK,CACV,WAAW,CAAC,EAAE,EACd,IAAI,EACJ,0CAA0C,CAC3C,CAAC;YACF,MAAM,CAAC,KAAK,CACV,WAAW,CAAC,MAAM,EAClB,KAAK,EACL,kDAAkD,CACnD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAC1D,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,CAAC,KAAK,CACT,qBAAiD,CAAC,KAAK,CAAC,EACzD,SAAS,EACT,yEAAyE,CAC1E,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,CAAC,KAAK,CACT,qBAAiD,CAAC,KAAK,CAAC,EACzD,SAAS,EACT,yEAAyE,CAC1E,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,KAAK,MAAM,QAAQ,IAAI,wBAAwB,EAAE,CAAC;gBAChD,MAAM,CAAC,KAAK,CACT,qBAAiD,CAAC,QAAQ,CAAC,EAC5D,SAAS,EACT,GAAG,QAAQ,8DAA8D,CAC1E,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAClD,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;YAC7E,iEAAiE;YACjE,2EAA2E;YAC3E,KAAK,MAAM,QAAQ,IAAI,+BAA+B,EAAE,CAAC;gBACvD,MAAM,CAAC,KAAK,CACT,qBAAiD,CAAC,QAAQ,CAAC,EAC5D,SAAS,EACT,GAAG,QAAQ,4EAA4E,CACxF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAE7D,oFAAoF;YACpF,MAAM,CAAC,SAAS,CACd,iBAAiB,CAAC,IAAI,EAAE,EACxB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,EAC5C,8CAA8C,CAC/C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,sEAAsE;YACtE,MAAM,eAAe,GAAG;gBACtB,KAAK,EAAE,8CAA8C;gBACrD,OAAO,EAAE,kDAAkD;gBAC3D,WAAW,EAAE,8CAA8C;gBAC3D,KAAK,EAAE,8CAA8C;aACtD,CAAC;YAEF,MAAM,CAAC,KAAK,CACV,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,EACnC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,MAAM,EACzC,2DAA2D,CAC5D,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"emitter-globals-subset.test.js","sourceRoot":"","sources":["../../src/invariants/emitter-globals-subset.test.ts"],"names":[],"mappings":"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"}