You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: address PR #66 review, fix#29, verify #13 and #25
- Fix issue #29: parse() now captures source location from SyntaxError
stacks where V8 puts the file:line(:col) as the first line instead of
an error message. This is returned as the first CallSite frame.
- Source location detection uses robust guards:
* Excludes lines with ': ' (colon+space) which indicates error messages
* Excludes URL schemes (http://, https://, etc.)
* Regex is safe from ReDoS (non-greedy with anchored terminus)
- Refactored parse() internals from map+filter to forEach+push:
* Identical output behavior (verified with tests)
* Slightly more memory efficient (1 array vs 2 intermediate arrays)
* Fully compatible with Node 20+
- Keep engines.node at >=20.0.0
- Fix README: 'All other methods' -> 'The other getter-style methods'
(boolean predicates return false, not null)
- Add full boundary-frame contract assertions to long-stack-trace test
- Remove dead 'exceptions' parameter from compare() in parse-test
- Add regression test for issue #13 ([object Object] in function name)
-- confirmed already working with current regex
- Add verification test for issue #25 (async/await) -- confirmed
resolved on modern Node via V8 async stack traces
- Comprehensive test coverage for #29: SyntaxError with/without column,
Windows paths, non-regression for Error/TypeError/RangeError, custom
error types, URL schemes, adversarial ReDoS inputs, forEach output
equivalence, and memory/shared-state safety
Closes#13Closes#25Closes#29
Copy file name to clipboardExpand all lines: Readme.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,8 +41,8 @@ certain properties can be retrieved with it as noted in the API docs below.
41
41
When parsing an `err.stack` that has crossed the event loop boundary, a
42
42
`CallSite` object is created whose `getFileName()` returns the full dashed
43
43
separator line from the stack, including any leading whitespace such as
44
-
indentation. All other methods of the event loop boundary call site return
45
-
`null`.
44
+
indentation. The other getter-style methods of the event loop boundary call site
45
+
return `null`.
46
46
47
47
Historically this behavior was often observed together with
48
48
[long-stack-traces](https://github.com/tlrobinson/long-stack-traces), but that package is unmaintained. This module does not depend on it and still supports parsing dashed event-loop boundary markers when
0 commit comments