The optimized code achieves a **172% speedup** (85.2ms → 31.3ms) by eliminating a critical O(n²) performance bottleneck in the `transform()` method.
## Key Optimization
**Problem**: The original code called `is_inside_string(code, match.start())` for every regex match found. This function scans from position 0 to the match position each time, resulting in O(n²) complexity when processing code with many matches.
**Solution**: The optimization replaces these repeated scans with **incremental string state tracking** directly in the main loop. Instead of rescanning from the beginning for each match, the code maintains `in_string`, `string_char`, and `last_checked_pos` variables that preserve state between iterations. When a new match is found, only the code between `last_checked_pos` and `match_start` is scanned to update the string state.
## Performance Impact
The line profiler data clearly shows the improvement:
- **Original**: `is_inside_string()` consumed 0.618s (95.2% of transform time) with 432 calls scanning 887,510 characters total
- **Optimized**: The inline tracking logic in transform() consumes only 0.021s (33% of transform time) by scanning just 28,273 characters incrementally
Test results demonstrate strong gains on workloads with many matches:
- `test_transform_many_invocations`: 12.3ms → 4.84ms (155% faster)
- `test_transform_large_code_file`: 40.6ms → 14.0ms (191% faster)
- `test_transform_alternating_patterns`: 2.64ms → 519μs (408% faster)
- `test_transform_mixed_qualified_names`: 14.0ms → 5.14ms (173% faster)
The optimization particularly benefits code with frequent expect() calls, as each avoided `is_inside_string()` call saves scanning hundreds or thousands of characters. This makes the transformer significantly faster on realistic test files with multiple assertions.
Summary
.call()pattern (funcName.call(thisArg, args)) in JavaScript test code.call()invocations tocodeflash.capture('name', 'id', func.bind(thisArg), args)in both standalone and expect-wrapped contextssplit_call_args()helper to correctly parse.call()arguments handling nested parens, brackets, braces, and string literalsTest plan
IdempotencyInterceptor.prototype.getIdempotencyKey.call()pattern🤖 Generated with Claude Code