Skip to content

Commit 2d62a3b

Browse files
committed
Fix stacktrace parsing to work on IE 11.
On behalf of jleyba.
1 parent 467316d commit 2d62a3b

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

javascript/webdriver/stacktrace.js

+8-5
Original file line numberDiff line numberDiff line change
@@ -426,13 +426,16 @@ webdriver.stacktrace.OPERA_STACK_FRAME_REGEXP_ = new RegExp('^' +
426426

427427
/**
428428
* RegExp pattern for function call in a Chakra (IE) stack trace. This
429-
* expression allows for identifiers like 'Anonymous function', 'eval code',
430-
* and 'Global code'.
429+
* expression creates 2 submatches on the (optional) context and function name,
430+
* matching identifiers like 'foo.Bar.prototype.baz', 'Anonymous function',
431+
* 'eval code', and 'Global code'.
431432
* @private {string}
432433
* @const
433434
*/
434-
webdriver.stacktrace.CHAKRA_FUNCTION_CALL_PATTERN_ = '(' +
435-
webdriver.stacktrace.IDENTIFIER_PATTERN_ + '(?:\\s+\\w+)*)';
435+
webdriver.stacktrace.CHAKRA_FUNCTION_CALL_PATTERN_ =
436+
'(?:(' + webdriver.stacktrace.IDENTIFIER_PATTERN_ +
437+
'(?:\\.' + webdriver.stacktrace.IDENTIFIER_PATTERN_ + ')*)\\.)?' +
438+
'(' + webdriver.stacktrace.IDENTIFIER_PATTERN_ + '(?:\\s+\\w+)*)';
436439

437440

438441
/**
@@ -518,7 +521,7 @@ webdriver.stacktrace.parseStackFrame_ = function(frameStr) {
518521

519522
m = frameStr.match(webdriver.stacktrace.CHAKRA_STACK_FRAME_REGEXP_);
520523
if (m) {
521-
return new webdriver.stacktrace.Frame('', m[1], '', m[2]);
524+
return new webdriver.stacktrace.Frame(m[1], m[2], '', m[3]);
522525
}
523526

524527
if (frameStr == webdriver.stacktrace.UNKNOWN_CLOSURE_FRAME_ ||

0 commit comments

Comments
 (0)