Bug 1415161 - Get rid of slow JSContext::findVersion calls when parsing regular expressions. r=anba

This commit is contained in:
Jan de Mooij 2017-11-07 17:40:12 +01:00
Родитель 3e832151da
Коммит cf7e09f7f0
2 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -178,7 +178,7 @@ js::ExecuteRegExpLegacy(JSContext* cx, RegExpStatics* res, Handle<RegExpObject*>
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);

Просмотреть файл

@ -242,7 +242,7 @@ RegExpObject::create(JSContext* cx, HandleAtom source, RegExpFlag flags,
{
Maybe<CompileOptions> dummyOptions;
if (!tokenStream && !options) {
dummyOptions.emplace(cx);
dummyOptions.emplace(cx, JSVERSION_DEFAULT);
options = dummyOptions.ptr();
}
Maybe<TokenStream> 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());