supercov 0.0.2 → 0.0.3

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 (70) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +115 -20
  3. package/bin/supercov.js +10 -0
  4. package/dist/atomic.d.ts +6 -0
  5. package/dist/atomic.d.ts.map +1 -0
  6. package/dist/atomic.js +47 -0
  7. package/dist/atomic.js.map +1 -0
  8. package/dist/cli.js +431 -214
  9. package/dist/cli.js.map +1 -1
  10. package/dist/directInstrumenter.d.ts +8 -0
  11. package/dist/directInstrumenter.d.ts.map +1 -0
  12. package/dist/directInstrumenter.js +70 -0
  13. package/dist/directInstrumenter.js.map +1 -0
  14. package/dist/instrumenter.d.ts.map +1 -1
  15. package/dist/instrumenter.js +251 -41
  16. package/dist/instrumenter.js.map +1 -1
  17. package/dist/integrity.d.ts.map +1 -1
  18. package/dist/integrity.js +27 -0
  19. package/dist/integrity.js.map +1 -1
  20. package/dist/launchSupervisor.d.ts +24 -0
  21. package/dist/launchSupervisor.d.ts.map +1 -0
  22. package/dist/launchSupervisor.js +397 -0
  23. package/dist/launchSupervisor.js.map +1 -0
  24. package/dist/playwright.d.ts +0 -4
  25. package/dist/playwright.d.ts.map +1 -1
  26. package/dist/playwright.js +33 -17
  27. package/dist/playwright.js.map +1 -1
  28. package/dist/playwrightReporter.d.ts.map +1 -1
  29. package/dist/playwrightReporter.js +3 -2
  30. package/dist/playwrightReporter.js.map +1 -1
  31. package/dist/project.d.ts +5 -2
  32. package/dist/project.d.ts.map +1 -1
  33. package/dist/project.js +192 -27
  34. package/dist/project.js.map +1 -1
  35. package/dist/query.d.ts.map +1 -1
  36. package/dist/query.js +1 -0
  37. package/dist/query.js.map +1 -1
  38. package/dist/register.mjs +18 -13
  39. package/dist/register.mjs.map +1 -1
  40. package/dist/reporter.d.ts +4 -1
  41. package/dist/reporter.d.ts.map +1 -1
  42. package/dist/reporter.js +13 -11
  43. package/dist/reporter.js.map +1 -1
  44. package/dist/resolve-loader.d.mts.map +1 -1
  45. package/dist/resolve-loader.mjs +11 -3
  46. package/dist/resolve-loader.mjs.map +1 -1
  47. package/dist/runtime.d.ts +2 -2
  48. package/dist/runtime.d.ts.map +1 -1
  49. package/dist/runtime.js +35 -7
  50. package/dist/runtime.js.map +1 -1
  51. package/dist/transport.d.ts +2 -0
  52. package/dist/transport.d.ts.map +1 -1
  53. package/dist/transport.js +2 -0
  54. package/dist/transport.js.map +1 -1
  55. package/dist/types.d.ts +2 -1
  56. package/dist/types.d.ts.map +1 -1
  57. package/dist/vitePlugin.d.ts.map +1 -1
  58. package/dist/vitePlugin.js +4 -3
  59. package/dist/vitePlugin.js.map +1 -1
  60. package/dist/vitest.js +3 -2
  61. package/dist/vitest.js.map +1 -1
  62. package/dist/vitestReporter.d.ts +17 -2
  63. package/dist/vitestReporter.d.ts.map +1 -1
  64. package/dist/vitestReporter.js +51 -2
  65. package/dist/vitestReporter.js.map +1 -1
  66. package/dist/workspace.d.ts +46 -0
  67. package/dist/workspace.d.ts.map +1 -0
  68. package/dist/workspace.js +284 -0
  69. package/dist/workspace.js.map +1 -0
  70. package/package.json +19 -5
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { CoverageManifest } from "./types.ts";
2
+ /**
3
+ * Instrument source inside Supercov's disposable workspace when a project has
4
+ * no build step. The preload supplies the runtime through a global so the
5
+ * transformed source remains valid in ESM, CommonJS, and transpiler inputs.
6
+ */
7
+ export declare function instrumentDirectWorkspace(root: string, sourceRoots: string[], manifestPath: string): CoverageManifest;
8
+ //# sourceMappingURL=directInstrumenter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directInstrumenter.d.ts","sourceRoot":"","sources":["../src/directInstrumenter.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAGV,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AAkDpB;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,GACnB,gBAAgB,CAwBlB"}
@@ -0,0 +1,70 @@
1
+ import { existsSync, readFileSync, readdirSync, } from "node:fs";
2
+ import { relative, resolve, sep } from "node:path";
3
+ import { atomicWriteFileSync } from "./atomic.js";
4
+ import { instrumentMcdc, mcdcRuntimeModuleId } from "./instrumenter.js";
5
+ function sourceFiles(directory) {
6
+ if (!existsSync(directory))
7
+ return [];
8
+ return readdirSync(directory, { withFileTypes: true }).flatMap((entry) => {
9
+ const path = resolve(directory, entry.name);
10
+ if (entry.isDirectory())
11
+ return sourceFiles(path);
12
+ return entry.isFile() && /\.[cm]?[jt]sx?$/.test(entry.name) &&
13
+ !/\.d\.[cm]?ts$/.test(entry.name)
14
+ ? [path]
15
+ : [];
16
+ });
17
+ }
18
+ function directRuntime(code) {
19
+ const escapedModule = mcdcRuntimeModuleId.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
20
+ return code.replace(new RegExp(`import\\s*\\{([\\s\\S]*?)\\}\\s*from\\s*["']${escapedModule}["'];?`), (_statement, bindings) => {
21
+ const properties = bindings
22
+ .split(",")
23
+ .map((binding) => binding.trim())
24
+ .filter(Boolean)
25
+ .map((binding) => {
26
+ const [imported = "", local = imported] = binding
27
+ .split(/\s+as\s+/)
28
+ .map((value) => value.trim());
29
+ return imported === local ? imported : `${imported}: ${local}`;
30
+ })
31
+ .join(", ");
32
+ return `const { ${properties} } = globalThis.__SUPERCOV_DIRECT_RUNTIME__;`;
33
+ });
34
+ }
35
+ function sortByLocation(values) {
36
+ return values.sort((left, right) => left.file === right.file
37
+ ? left.line - right.line || left.column - right.column
38
+ : left.file.localeCompare(right.file));
39
+ }
40
+ /**
41
+ * Instrument source inside Supercov's disposable workspace when a project has
42
+ * no build step. The preload supplies the runtime through a global so the
43
+ * transformed source remains valid in ESM, CommonJS, and transpiler inputs.
44
+ */
45
+ export function instrumentDirectWorkspace(root, sourceRoots, manifestPath) {
46
+ const decisions = [];
47
+ const points = [];
48
+ const branches = [];
49
+ const limitations = [];
50
+ for (const sourceRoot of sourceRoots) {
51
+ for (const path of sourceFiles(resolve(root, sourceRoot))) {
52
+ const file = relative(root, path).split(sep).join("/");
53
+ const result = instrumentMcdc(readFileSync(path, "utf8"), file);
54
+ decisions.push(...result.manifest.decisions);
55
+ points.push(...result.manifest.points);
56
+ branches.push(...result.manifest.branches);
57
+ limitations.push(...(result.manifest.limitations ?? []));
58
+ atomicWriteFileSync(path, directRuntime(result.code));
59
+ }
60
+ }
61
+ const manifest = {
62
+ decisions: sortByLocation(decisions),
63
+ points: sortByLocation(points),
64
+ branches: sortByLocation(branches),
65
+ limitations: sortByLocation(limitations),
66
+ };
67
+ atomicWriteFileSync(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`);
68
+ return manifest;
69
+ }
70
+ //# sourceMappingURL=directInstrumenter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directInstrumenter.js","sourceRoot":"","sources":["../src/directInstrumenter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumenter.d.ts","sourceRoot":"","sources":["../src/instrumenter.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AAIxC,OAAO,KAAK,EAEV,gBAAgB,EAGhB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAyKpB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,oBAAoB,CAqiCtB;AAED,eAAO,MAAM,mBAAmB,6BAAiB,CAAC"}
1
+ {"version":3,"file":"instrumenter.d.ts","sourceRoot":"","sources":["../src/instrumenter.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AAIxC,OAAO,KAAK,EAEV,gBAAgB,EAGhB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAwSpB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,oBAAoB,CAynCtB;AAED,eAAO,MAAM,mBAAmB,6BAAiB,CAAC"}
@@ -61,27 +61,58 @@ function collectConditions(node, conditions) {
61
61
  }
62
62
  conditions.push(node);
63
63
  }
64
- function instrumentConditions(node, frameId, nextIndex, decisionLogicalNodes) {
64
+ function instrumentConditions(node, frameId, nextIndex, decisionLogicalNodes, conditionRuntimeName) {
65
65
  if (t.isLogicalExpression(node) &&
66
66
  (node.operator === "&&" || node.operator === "||")) {
67
- const logical = t.logicalExpression(node.operator, instrumentConditions(node.left, frameId, nextIndex, decisionLogicalNodes), instrumentConditions(node.right, frameId, nextIndex, decisionLogicalNodes));
67
+ const logical = t.logicalExpression(node.operator, instrumentConditions(node.left, frameId, nextIndex, decisionLogicalNodes, conditionRuntimeName), instrumentConditions(node.right, frameId, nextIndex, decisionLogicalNodes, conditionRuntimeName));
68
68
  decisionLogicalNodes.add(logical);
69
69
  return logical;
70
70
  }
71
71
  if (t.isUnaryExpression(node, { operator: "!" }) &&
72
72
  hasCompoundBooleanDecision(node.argument)) {
73
- return t.unaryExpression("!", instrumentConditions(node.argument, frameId, nextIndex, decisionLogicalNodes), true);
73
+ return t.unaryExpression("!", instrumentConditions(node.argument, frameId, nextIndex, decisionLogicalNodes, conditionRuntimeName), true);
74
74
  }
75
75
  const index = nextIndex.value;
76
76
  nextIndex.value += 1;
77
- return t.callExpression(t.identifier(CONDITION), [
77
+ return t.callExpression(t.identifier(conditionRuntimeName), [
78
78
  t.cloneNode(frameId),
79
79
  t.numericLiteral(index),
80
- t.cloneNode(node, true),
80
+ node,
81
81
  ]);
82
82
  }
83
- function hitStatement(id) {
84
- return t.expressionStatement(t.callExpression(t.identifier(HIT), [t.stringLiteral(id)]));
83
+ function hitStatement(id, hitRuntimeName) {
84
+ return t.expressionStatement(t.callExpression(t.identifier(hitRuntimeName), [t.stringLiteral(id)]));
85
+ }
86
+ function allocatedRuntimeNames(code) {
87
+ const preferred = [
88
+ BEGIN,
89
+ CONDITION,
90
+ END,
91
+ HIT,
92
+ SELECTION_BEGIN,
93
+ SELECTION_RIGHT,
94
+ SELECTION_END,
95
+ WITH_REQUEST_PHASE,
96
+ OPTIONAL_SELECT,
97
+ DEFAULT_SELECTED,
98
+ DEFAULT_ENTERED,
99
+ TRY_BEGIN,
100
+ TRY_CATCH,
101
+ TRY_END,
102
+ LOOP_BEGIN,
103
+ LOOP_ENTERED,
104
+ LOOP_END,
105
+ ];
106
+ const names = {};
107
+ const used = new Set();
108
+ for (const base of preferred) {
109
+ let candidate = base;
110
+ while (used.has(candidate) || code.includes(candidate))
111
+ candidate = `_${candidate}`;
112
+ names[base] = candidate;
113
+ used.add(candidate);
114
+ }
115
+ return names;
85
116
  }
86
117
  function functionLabel(path) {
87
118
  if ("id" in path.node && t.isIdentifier(path.node.id))
@@ -109,10 +140,91 @@ function isExecutableStatement(node) {
109
140
  }
110
141
  return !("declare" in node && node.declare === true);
111
142
  }
143
+ function isAnonymousFunctionDefinition(node) {
144
+ return (t.isArrowFunctionExpression(node) ||
145
+ (t.isFunctionExpression(node) && node.id === null) ||
146
+ (t.isClassExpression(node) && node.id === null));
147
+ }
148
+ function isSourceSensitiveFunction(path) {
149
+ let child = path;
150
+ for (let parent = path.parentPath; parent; parent = parent.parentPath) {
151
+ const candidate = parent.node;
152
+ const value = child.node;
153
+ if ((t.isParenthesizedExpression(candidate) ||
154
+ t.isTSAsExpression(candidate) ||
155
+ t.isTSTypeAssertion(candidate) ||
156
+ t.isTSNonNullExpression(candidate)) &&
157
+ candidate.expression === value) {
158
+ child = parent;
159
+ continue;
160
+ }
161
+ if ((t.isConditionalExpression(candidate) &&
162
+ (candidate.consequent === value || candidate.alternate === value)) ||
163
+ (t.isLogicalExpression(candidate) &&
164
+ (candidate.left === value || candidate.right === value)) ||
165
+ (t.isSequenceExpression(candidate) &&
166
+ candidate.expressions.at(-1) === value) ||
167
+ (t.isAssignmentExpression(candidate) && candidate.right === value)) {
168
+ child = parent;
169
+ continue;
170
+ }
171
+ if (((t.isClassMethod(candidate) ||
172
+ t.isClassProperty(candidate) ||
173
+ t.isObjectMethod(candidate) ||
174
+ t.isObjectProperty(candidate)) &&
175
+ candidate.computed &&
176
+ candidate.key === value) ||
177
+ ((t.isMemberExpression(candidate) ||
178
+ t.isOptionalMemberExpression(candidate)) &&
179
+ candidate.computed &&
180
+ candidate.property === value))
181
+ return true;
182
+ if (t.isCallExpression(candidate) &&
183
+ t.isIdentifier(candidate.callee, { name: "String" }) &&
184
+ candidate.arguments.includes(value))
185
+ return true;
186
+ if (t.isBinaryExpression(candidate) &&
187
+ ["+", "<", "<=", ">", ">="].includes(candidate.operator) &&
188
+ (candidate.left === value || candidate.right === value))
189
+ return true;
190
+ if ((t.isMemberExpression(candidate) ||
191
+ t.isOptionalMemberExpression(candidate)) &&
192
+ !candidate.computed &&
193
+ t.isIdentifier(candidate.property, { name: "toString" }) &&
194
+ candidate.object === value)
195
+ return true;
196
+ // Any other operation consumes or stores the function value. Static
197
+ // ancestry can no longer prove that this exact function is coerced.
198
+ return false;
199
+ }
200
+ return false;
201
+ }
202
+ function isInsideWithStatement(path) {
203
+ return Boolean(path.findParent((parent) => parent.isWithStatement()));
204
+ }
112
205
  export function instrumentMcdc(code, file) {
206
+ const names = allocatedRuntimeNames(code);
207
+ const BEGIN = names["__supercovMcdcBegin"];
208
+ const CONDITION = names["__supercovMcdcCondition"];
209
+ const END = names["__supercovMcdcEnd"];
210
+ const HIT = names["__supercovCoverageHit"];
211
+ const SELECTION_BEGIN = names["__supercovSelectionBegin"];
212
+ const SELECTION_RIGHT = names["__supercovSelectionRight"];
213
+ const SELECTION_END = names["__supercovSelectionEnd"];
214
+ const WITH_REQUEST_PHASE = names["__supercovWithRequestPhase"];
215
+ const OPTIONAL_SELECT = names["__supercovOptionalSelect"];
216
+ const DEFAULT_SELECTED = names["__supercovDefaultSelected"];
217
+ const DEFAULT_ENTERED = names["__supercovDefaultEntered"];
218
+ const TRY_BEGIN = names["__supercovTryBegin"];
219
+ const TRY_CATCH = names["__supercovTryCatch"];
220
+ const TRY_END = names["__supercovTryEnd"];
221
+ const LOOP_BEGIN = names["__supercovLoopBegin"];
222
+ const LOOP_ENTERED = names["__supercovLoopEntered"];
223
+ const LOOP_END = names["__supercovLoopEnd"];
113
224
  const parserPlugins = [
114
225
  "typescript",
115
226
  "decorators-legacy",
227
+ "sourcePhaseImports",
116
228
  ...(file.endsWith("x") ? ["jsx"] : []),
117
229
  ];
118
230
  const ast = parse(code, {
@@ -128,11 +240,52 @@ export function instrumentMcdc(code, file) {
128
240
  const generatedStatements = new WeakSet();
129
241
  const decisionLogicalNodes = new WeakSet();
130
242
  let usesRequestPhaseHandler = false;
243
+ // Instrumentation necessarily changes a function's source text. When code
244
+ // directly observes or coerces that source, keep the entire function body
245
+ // untouched and report the resulting coverage boundary explicitly.
246
+ const sourceSensitiveFunctions = new WeakSet();
247
+ traverse(ast, {
248
+ Function(path) {
249
+ if (!isSourceSensitiveFunction(path))
250
+ return;
251
+ sourceSensitiveFunctions.add(path.node);
252
+ if (!path.node.loc)
253
+ return;
254
+ limitations.push({
255
+ id: stableId(file, "semantic-safety", path.node, "function-source"),
256
+ kind: "semantic-safety",
257
+ file,
258
+ line: path.node.loc.start.line,
259
+ column: path.node.loc.start.column + 1,
260
+ source: sourceFor(code, path.node),
261
+ reason: "function body is left uninstrumented because this expression observes or coerces Function source text",
262
+ });
263
+ },
264
+ });
265
+ const isWithinSourceSensitiveFunction = (path) => (path.isFunction() && sourceSensitiveFunctions.has(path.node)) ||
266
+ Boolean(path.findParent((parent) => parent.isFunction() && sourceSensitiveFunctions.has(parent.node)));
267
+ traverse(ast, {
268
+ WithStatement(path) {
269
+ if (!path.node.loc)
270
+ return;
271
+ limitations.push({
272
+ id: stableId(file, "semantic-safety", path.node, "with-environment"),
273
+ kind: "semantic-safety",
274
+ file,
275
+ line: path.node.loc.start.line,
276
+ column: path.node.loc.start.column + 1,
277
+ source: sourceFor(code, path.node),
278
+ reason: "with-statement body is left uninstrumented because its object environment can intercept probe identifiers",
279
+ });
280
+ },
281
+ });
282
+ const isUnsafeInstrumentationContext = (path) => isWithinSourceSensitiveFunction(path) || isInsideWithStatement(path);
131
283
  // Record executable statements before adding any instrumentation statements.
132
284
  traverse(ast, {
133
285
  Statement(path) {
134
286
  const node = path.node;
135
287
  if (!node.loc ||
288
+ isUnsafeInstrumentationContext(path) ||
136
289
  generatedStatements.has(node) ||
137
290
  !isExecutableStatement(node))
138
291
  return;
@@ -147,7 +300,7 @@ export function instrumentMcdc(code, file) {
147
300
  column: node.loc.start.column + 1,
148
301
  source: sourceFor(code, node),
149
302
  });
150
- const probe = hitStatement(id);
303
+ const probe = hitStatement(id, HIT);
151
304
  generatedStatements.add(probe);
152
305
  if (path.parentPath.isProgram() ||
153
306
  path.parentPath.isBlockStatement() ||
@@ -196,43 +349,48 @@ export function instrumentMcdc(code, file) {
196
349
  };
197
350
  traverse(ast, {
198
351
  OptionalMemberExpression(path) {
352
+ if (isUnsafeInstrumentationContext(path))
353
+ return;
199
354
  if (!path.node.optional || !t.isExpression(path.node.object))
200
355
  return;
201
356
  path.node.object = instrumentOptionalOperand(path, path.node.object);
202
357
  },
203
358
  OptionalCallExpression(path) {
359
+ if (isUnsafeInstrumentationContext(path))
360
+ return;
204
361
  if (!path.node.optional || !t.isExpression(path.node.callee))
205
362
  return;
206
363
  const callee = path.node.callee;
364
+ if (t.isOptionalMemberExpression(callee)) {
365
+ if (path.node.loc) {
366
+ limitations.push({
367
+ id: stableId(file, "semantic-safety", path.node, "optional-chain-call"),
368
+ kind: "semantic-safety",
369
+ file,
370
+ line: path.node.loc.start.line,
371
+ column: path.node.loc.start.column + 1,
372
+ source: sourceFor(code, path.node),
373
+ reason: "optional calls whose receiver is itself an optional chain are left native to preserve chain short-circuiting and method receiver semantics",
374
+ });
375
+ }
376
+ return;
377
+ }
207
378
  if (t.isMemberExpression(callee) || t.isOptionalMemberExpression(callee)) {
208
- // Preserve the receiver of `object.method?.()` by evaluating the
209
- // object and method once and calling through Function#call.
210
- if (t.isSuper(callee.object) || !t.isExpression(callee.object)) {
211
- if (path.node.loc) {
212
- limitations.push({
213
- id: stableId(file, "dynamic-code", path.node, "optional-super"),
214
- kind: "dynamic-code",
215
- file,
216
- line: path.node.loc.start.line,
217
- column: path.node.loc.start.column + 1,
218
- source: sourceFor(code, path.node),
219
- reason: "optional calls through super cannot be probed without changing receiver semantics",
220
- });
221
- }
222
- return;
379
+ // Rewriting `object.method?.()` through `.call` preserves `this` for
380
+ // the immediate invocation but breaks the specification's optional
381
+ // chain continuation (`object.method?.()()`). Leave it native until a
382
+ // probe can preserve the chain's internal short-circuit target.
383
+ if (path.node.loc) {
384
+ limitations.push({
385
+ id: stableId(file, "semantic-safety", path.node, "optional-method-call"),
386
+ kind: "semantic-safety",
387
+ file,
388
+ line: path.node.loc.start.line,
389
+ column: path.node.loc.start.column + 1,
390
+ source: sourceFor(code, path.node),
391
+ reason: "optional method calls are left native to preserve receiver and whole-chain short-circuit semantics",
392
+ });
223
393
  }
224
- const objectId = path.scope.generateUidIdentifier("supercovOptionalObject");
225
- const callableId = path.scope.generateUidIdentifier("supercovOptionalCallable");
226
- const frameScope = path.scope.getFunctionParent() ?? path.scope.getProgramParent();
227
- frameScope.push({ id: t.cloneNode(objectId), kind: "let" });
228
- frameScope.push({ id: t.cloneNode(callableId), kind: "let" });
229
- const objectAssignment = t.assignmentExpression("=", t.cloneNode(objectId), callee.object);
230
- const member = t.memberExpression(t.cloneNode(objectId), t.cloneNode(callee.property), callee.computed);
231
- const callableAssignment = t.assignmentExpression("=", t.cloneNode(callableId), member);
232
- const selected = instrumentOptionalOperand(path, t.cloneNode(callableId));
233
- const call = t.optionalCallExpression(t.optionalMemberExpression(selected, t.identifier("call"), false, true), [t.cloneNode(objectId), ...path.node.arguments.map((argument) => t.cloneNode(argument))], false);
234
- path.replaceWith(t.sequenceExpression([objectAssignment, callableAssignment, call]));
235
- path.skip();
236
394
  return;
237
395
  }
238
396
  path.node.callee = instrumentOptionalOperand(path, callee);
@@ -243,6 +401,8 @@ export function instrumentMcdc(code, file) {
243
401
  traverse(ast, {
244
402
  AssignmentExpression: {
245
403
  exit(path) {
404
+ if (isUnsafeInstrumentationContext(path))
405
+ return;
246
406
  const node = path.node;
247
407
  if (!node.loc ||
248
408
  (node.operator !== "&&=" &&
@@ -274,6 +434,11 @@ export function instrumentMcdc(code, file) {
274
434
  const assignment = t.assignmentExpression(node.operator, t.cloneNode(node.left), t.callExpression(t.identifier(SELECTION_RIGHT), [
275
435
  t.cloneNode(frameId),
276
436
  node.right,
437
+ ...(t.isIdentifier(node.left) &&
438
+ !node.left.extra?.parenthesized &&
439
+ isAnonymousFunctionDefinition(node.right)
440
+ ? [t.stringLiteral(node.left.name)]
441
+ : []),
277
442
  ]));
278
443
  path.replaceWith(t.sequenceExpression([
279
444
  assignFrame,
@@ -291,6 +456,8 @@ export function instrumentMcdc(code, file) {
291
456
  // value without comparing values or evaluating either expression twice.
292
457
  traverse(ast, {
293
458
  Function(path) {
459
+ if (isUnsafeInstrumentationContext(path))
460
+ return;
294
461
  if (!t.isBlockStatement(path.node.body))
295
462
  return;
296
463
  const entries = [];
@@ -320,6 +487,10 @@ export function instrumentMcdc(code, file) {
320
487
  pattern.right = t.callExpression(t.identifier(DEFAULT_SELECTED), [
321
488
  t.stringLiteral(defaultId),
322
489
  pattern.right,
490
+ ...(t.isIdentifier(pattern.left) &&
491
+ isAnonymousFunctionDefinition(pattern.right)
492
+ ? [t.stringLiteral(pattern.left.name)]
493
+ : []),
323
494
  ]);
324
495
  entries.push(t.expressionStatement(t.callExpression(t.identifier(DEFAULT_ENTERED), [
325
496
  t.stringLiteral(defaultId),
@@ -355,6 +526,8 @@ export function instrumentMcdc(code, file) {
355
526
  // after JavaScript has completed the binding operation.
356
527
  traverse(ast, {
357
528
  VariableDeclaration(path) {
529
+ if (isUnsafeInstrumentationContext(path))
530
+ return;
358
531
  const parent = path.parentPath;
359
532
  if (parent.isForStatement() && path.key === "init") {
360
533
  let hasDefault = false;
@@ -400,6 +573,10 @@ export function instrumentMcdc(code, file) {
400
573
  pattern.right = t.callExpression(t.identifier(DEFAULT_SELECTED), [
401
574
  t.stringLiteral(defaultId),
402
575
  pattern.right,
576
+ ...(t.isIdentifier(pattern.left) &&
577
+ isAnonymousFunctionDefinition(pattern.right)
578
+ ? [t.stringLiteral(pattern.left.name)]
579
+ : []),
403
580
  ]);
404
581
  entries.push(t.expressionStatement(t.callExpression(t.identifier(DEFAULT_ENTERED), [
405
582
  t.stringLiteral(defaultId),
@@ -444,6 +621,8 @@ export function instrumentMcdc(code, file) {
444
621
  // return, break, continue, rejection, and throw paths remain observable.
445
622
  traverse(ast, {
446
623
  TryStatement(path) {
624
+ if (isUnsafeInstrumentationContext(path))
625
+ return;
447
626
  const node = path.node;
448
627
  if (!node.loc || !node.handler)
449
628
  return;
@@ -481,6 +660,8 @@ export function instrumentMcdc(code, file) {
481
660
  path.skip();
482
661
  },
483
662
  "ForInStatement|ForOfStatement"(path) {
663
+ if (isUnsafeInstrumentationContext(path))
664
+ return;
484
665
  const node = path.node;
485
666
  if (!node.loc)
486
667
  return;
@@ -542,6 +723,8 @@ export function instrumentMcdc(code, file) {
542
723
  const node = path.node;
543
724
  if (!node.loc || !node.body)
544
725
  return;
726
+ if (isUnsafeInstrumentationContext(path))
727
+ return;
545
728
  const id = stableId(file, "function", node);
546
729
  points.push({
547
730
  id,
@@ -552,7 +735,7 @@ export function instrumentMcdc(code, file) {
552
735
  source: sourceFor(code, node),
553
736
  ...(functionLabel(path) ? { label: functionLabel(path) } : {}),
554
737
  });
555
- const probe = hitStatement(id);
738
+ const probe = hitStatement(id, HIT);
556
739
  generatedStatements.add(probe);
557
740
  if (t.isBlockStatement(node.body)) {
558
741
  node.body.body.unshift(probe);
@@ -580,14 +763,21 @@ export function instrumentMcdc(code, file) {
580
763
  kind,
581
764
  };
582
765
  decisions.push(meta);
583
- const frameId = path.scope.generateUidIdentifier("supercovMcdcFrame");
584
766
  // A loop predicate's path scope may be represented by Babel as the loop
585
767
  // body's block. Declaring the frame there puts it after the predicate that
586
768
  // uses it (and is especially visible in async generators). Hoist scratch
587
769
  // frames to the nearest function/program scope instead.
588
- const frameScope = path.scope.getFunctionParent() ?? path.scope.getProgramParent();
770
+ const evaluationScope = (path.isFunctionExpression() ||
771
+ path.isArrowFunctionExpression() ||
772
+ path.isClassExpression()) &&
773
+ path.scope.parent
774
+ ? path.scope.parent
775
+ : path.scope;
776
+ const frameScope = evaluationScope.getFunctionParent() ??
777
+ evaluationScope.getProgramParent();
778
+ const frameId = frameScope.generateUidIdentifier("supercovMcdcFrame");
589
779
  frameScope.push({ id: t.cloneNode(frameId), kind: "let" });
590
- const instrumented = instrumentConditions(path.node, frameId, { value: 0 }, decisionLogicalNodes);
780
+ const instrumented = instrumentConditions(path.node, frameId, { value: 0 }, decisionLogicalNodes, CONDITION);
591
781
  const begin = t.callExpression(t.identifier(BEGIN), [
592
782
  t.stringLiteral(id),
593
783
  t.valueToNode(meta),
@@ -602,18 +792,28 @@ export function instrumentMcdc(code, file) {
602
792
  };
603
793
  traverse(ast, {
604
794
  IfStatement(path) {
795
+ if (isUnsafeInstrumentationContext(path))
796
+ return;
605
797
  instrumentDecision(path.get("test"), "if");
606
798
  },
607
799
  ConditionalExpression(path) {
800
+ if (isUnsafeInstrumentationContext(path))
801
+ return;
608
802
  instrumentDecision(path.get("test"), "ternary");
609
803
  },
610
804
  WhileStatement(path) {
805
+ if (isUnsafeInstrumentationContext(path))
806
+ return;
611
807
  instrumentDecision(path.get("test"), "while");
612
808
  },
613
809
  DoWhileStatement(path) {
810
+ if (isUnsafeInstrumentationContext(path))
811
+ return;
614
812
  instrumentDecision(path.get("test"), "do-while");
615
813
  },
616
814
  ForStatement(path) {
815
+ if (isUnsafeInstrumentationContext(path))
816
+ return;
617
817
  const test = path.get("test");
618
818
  if (test.node)
619
819
  instrumentDecision(test, "for");
@@ -625,6 +825,8 @@ export function instrumentMcdc(code, file) {
625
825
  traverse(ast, {
626
826
  LogicalExpression: {
627
827
  exit(path) {
828
+ if (isUnsafeInstrumentationContext(path))
829
+ return;
628
830
  const node = path.node;
629
831
  if (!node.loc || decisionLogicalNodes.has(node))
630
832
  return;
@@ -671,6 +873,8 @@ export function instrumentMcdc(code, file) {
671
873
  // can legally fall through to the end and must not be counted as no-match.
672
874
  traverse(ast, {
673
875
  SwitchStatement(path) {
876
+ if (isUnsafeInstrumentationContext(path))
877
+ return;
674
878
  const node = path.node;
675
879
  if (!node.loc)
676
880
  return;
@@ -684,7 +888,7 @@ export function instrumentMcdc(code, file) {
684
888
  const label = switchCase.test
685
889
  ? `case ${sourceFor(code, switchCase.test)}`
686
890
  : "default";
687
- const probe = hitStatement(alternativeId);
891
+ const probe = hitStatement(alternativeId, HIT);
688
892
  generatedStatements.add(probe);
689
893
  switchCase.consequent.unshift(...(enteredId
690
894
  ? [
@@ -720,7 +924,7 @@ export function instrumentMcdc(code, file) {
720
924
  switchStatement = t.labeledStatement(t.cloneNode(replacementPath.parentPath.node.label), switchStatement);
721
925
  replacementPath = replacementPath.parentPath;
722
926
  }
723
- const noMatchProbe = hitStatement(noMatchId);
927
+ const noMatchProbe = hitStatement(noMatchId, HIT);
724
928
  generatedStatements.add(noMatchProbe);
725
929
  replacementPath.replaceWith(t.blockStatement([
726
930
  t.variableDeclaration("let", [
@@ -738,6 +942,8 @@ export function instrumentMcdc(code, file) {
738
942
  // instead of silently claiming 100% for only the surrounding file.
739
943
  traverse(ast, {
740
944
  CallExpression(path) {
945
+ if (isUnsafeInstrumentationContext(path))
946
+ return;
741
947
  const callee = path.node.callee;
742
948
  if (!path.node.loc || !t.isIdentifier(callee, { name: "eval" }))
743
949
  return;
@@ -752,6 +958,8 @@ export function instrumentMcdc(code, file) {
752
958
  });
753
959
  },
754
960
  NewExpression(path) {
961
+ if (isUnsafeInstrumentationContext(path))
962
+ return;
755
963
  if (!path.node.loc ||
756
964
  !t.isIdentifier(path.node.callee, { name: "Function" }))
757
965
  return;
@@ -855,6 +1063,8 @@ export function instrumentMcdc(code, file) {
855
1063
  // let the runtime scan callback arguments for Fetch or Node request headers.
856
1064
  traverse(ast, {
857
1065
  CallExpression(path) {
1066
+ if (isUnsafeInstrumentationContext(path))
1067
+ return;
858
1068
  const callee = path.node.callee;
859
1069
  const property = (t.isMemberExpression(callee) || t.isOptionalMemberExpression(callee)) &&
860
1070
  !callee.computed &&