-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
Given the function source:
function () {
// set the script that called this function
updateLastScript(script)
// immediately unset it
_setTimeout(function () { updateLastScript(null) }, 0)
cb.apply(this, arguments)
}this Regex will incorrectly name the function updateLastScript which is an unfortunate sequence of a comment ending in function followed by a function call.
stack-generator/stack-generator.js
Line 30 in 1e295b6
| if (/function(?:\s+([\w$]+))+\s*\(/.test(curr.toString())) { |
a nested function definition can also trip it up:
function () {
function jim() {
// inner
}
more()
statements()
}The following update fixes these scenarios, correctly returning null for these two annonymous functions:
- if (/function(?:\s+([\w$]+))+\s*\(/.test(curr.toString())) {
+ if (/^\s*function(?:\s+([\w$]+))+\s*\(/.test(curr.toString())) { I'm not sure if the "any preceding whitespace" part is strictly necessary but I don't think it hurts to permit that.
I can put together a PR for this including tests but I wanted to post it up as an issue before I get around to that while I work around it.
Metadata
Metadata
Assignees
Labels
No labels