Switch the order of experimental global initialization and running natives.

The order should match the one for normal natives.

R=yangguo@chromium.org

Review URL: https://codereview.chromium.org/988513003

Cr-Commit-Position: refs/heads/master@{#27165}
This commit is contained in:
dslomov 2015-03-12 08:44:32 -07:00 committed by Commit bot
parent 6b8428748e
commit c071af5ae3
2 changed files with 12 additions and 12 deletions

View File

@ -1706,10 +1706,9 @@ void Genesis::InitializeGlobal_harmony_regexps() {
Handle<HeapObject> flag(FLAG_harmony_regexps ? heap()->true_value()
: heap()->false_value());
PropertyAttributes attributes =
static_cast<PropertyAttributes>(DONT_DELETE | READ_ONLY);
Runtime::DefineObjectProperty(builtins, factory()->harmony_regexps_string(),
flag, attributes).Assert();
Runtime::SetObjectProperty(isolate(), builtins,
factory()->harmony_regexps_string(), flag,
STRICT).Assert();
}
@ -1718,11 +1717,9 @@ void Genesis::InitializeGlobal_harmony_unicode_regexps() {
Handle<HeapObject> flag(FLAG_harmony_unicode_regexps ? heap()->true_value()
: heap()->false_value());
PropertyAttributes attributes =
static_cast<PropertyAttributes>(DONT_DELETE | READ_ONLY);
Runtime::DefineObjectProperty(builtins,
factory()->harmony_unicode_regexps_string(),
flag, attributes).Assert();
Runtime::SetObjectProperty(isolate(), builtins,
factory()->harmony_unicode_regexps_string(), flag,
STRICT).Assert();
}
@ -2890,9 +2887,10 @@ Genesis::Genesis(Isolate* isolate,
// Install experimental natives. Do not include them into the snapshot as we
// should be able to turn them off at runtime. Re-installing them after
// they have already been deserialized would also fail.
if (!isolate->serializer_enabled() && !InstallExperimentalNatives()) return;
InitializeExperimentalGlobal();
if (!isolate->serializer_enabled()) {
InitializeExperimentalGlobal();
if (!InstallExperimentalNatives()) return;
}
// The serializer cannot serialize typed arrays. Reset those typed arrays
// for each new context.

View File

@ -6,6 +6,8 @@ var $regexpExec;
var $regexpExecNoTests;
var $regexpLastMatchInfo;
var $regexpLastMatchInfoOverride;
var harmony_regexps = false;
var harmony_unicode_regexps = false;
(function() {