From 3b77f3818846ea68bcdcd7b0b734b48cb1f69cc1 Mon Sep 17 00:00:00 2001 From: Gregg Van Hove Date: Thu, 15 Feb 2018 12:31:10 -0800 Subject: [PATCH] Return for functions that have no actual words between keyword and ( - Also fixes a potential catastrophic backtracking if someone has severely damaged their own `toString` during test execution. --- lib/jasmine-core/jasmine.js | 4 ++-- src/core/base.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/jasmine-core/jasmine.js b/lib/jasmine-core/jasmine.js index 19a6b58b..ab6aa6d0 100644 --- a/lib/jasmine-core/jasmine.js +++ b/lib/jasmine-core/jasmine.js @@ -255,8 +255,8 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { return func.name; } - var matches = func.toString().match(/^\s*function\s*(\w*)\s*\(/) || - func.toString().match(/^\s*\[object\s*(\w*)Constructor\]/); + var matches = func.toString().match(/^\s*function\s*(\w+)\s*\(/) || + func.toString().match(/^\s*\[object\s*(\w+)Constructor\]/); return matches ? matches[1] : ''; }; diff --git a/src/core/base.js b/src/core/base.js index a587c8dd..1f0f97d0 100644 --- a/src/core/base.js +++ b/src/core/base.js @@ -121,8 +121,8 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { return func.name; } - var matches = func.toString().match(/^\s*function\s*(\w*)\s*\(/) || - func.toString().match(/^\s*\[object\s*(\w*)Constructor\]/); + var matches = func.toString().match(/^\s*function\s*(\w+)\s*\(/) || + func.toString().match(/^\s*\[object\s*(\w+)Constructor\]/); return matches ? matches[1] : ''; };