From cf7e09f7f01cceafd4e616e98c6c1f757f6c2371 Mon Sep 17 00:00:00 2001 From: Jan de Mooij Date: Tue, 7 Nov 2017 17:40:12 +0100 Subject: [PATCH] Bug 1415161 - Get rid of slow JSContext::findVersion calls when parsing regular expressions. r=anba --- js/src/builtin/RegExp.cpp | 2 +- js/src/vm/RegExpObject.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/js/src/builtin/RegExp.cpp b/js/src/builtin/RegExp.cpp index 602e21a5f914..87644fe57b61 100644 --- a/js/src/builtin/RegExp.cpp +++ b/js/src/builtin/RegExp.cpp @@ -178,7 +178,7 @@ js::ExecuteRegExpLegacy(JSContext* cx, RegExpStatics* res, Handle static bool CheckPatternSyntax(JSContext* cx, HandleAtom pattern, RegExpFlag flags) { - CompileOptions options(cx); + CompileOptions options(cx, JSVERSION_DEFAULT); frontend::TokenStream dummyTokenStream(cx, options, nullptr, 0, nullptr); return irregexp::ParsePatternSyntax(dummyTokenStream, cx->tempLifoAlloc(), pattern, flags & UnicodeFlag); diff --git a/js/src/vm/RegExpObject.cpp b/js/src/vm/RegExpObject.cpp index b81e21a18e9b..4ed50cc15f0f 100644 --- a/js/src/vm/RegExpObject.cpp +++ b/js/src/vm/RegExpObject.cpp @@ -242,7 +242,7 @@ RegExpObject::create(JSContext* cx, HandleAtom source, RegExpFlag flags, { Maybe dummyOptions; if (!tokenStream && !options) { - dummyOptions.emplace(cx); + dummyOptions.emplace(cx, JSVERSION_DEFAULT); options = dummyOptions.ptr(); } Maybe dummyTokenStream; @@ -987,7 +987,7 @@ RegExpShared::compile(JSContext* cx, MutableHandleRegExpShared re, HandleAtom pa if (!re->ignoreCase() && !StringHasRegExpMetaChars(pattern)) re->canStringMatch = true; - CompileOptions options(cx); + CompileOptions options(cx, JSVERSION_DEFAULT); frontend::TokenStream dummyTokenStream(cx, options, nullptr, 0, nullptr); LifoAllocScope scope(&cx->tempLifoAlloc());