| Index: src/bootstrapper.cc
|
| diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
|
| index 5d0634aa963037c8e43cfffd41901f48bc45d54f..4119efabe66e248409c7c45e534ebb03346cf2ee 100644
|
| --- a/src/bootstrapper.cc
|
| +++ b/src/bootstrapper.cc
|
| @@ -1647,11 +1647,24 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
|
| factory->NewJSObject(isolate->object_function(), TENURED);
|
| Handle<JSFunction> regexp_fun =
|
| InstallFunction(global, "RegExp", JS_REGEXP_TYPE, JSRegExp::kSize,
|
| - prototype, Builtins::kIllegal);
|
| + prototype, Builtins::kRegExpConstructor);
|
| InstallWithIntrinsicDefaultProto(isolate, regexp_fun,
|
| Context::REGEXP_FUNCTION_INDEX);
|
| - regexp_fun->shared()->SetConstructStub(
|
| - *isolate->builtins()->JSBuiltinsConstructStub());
|
| +
|
| + Handle<SharedFunctionInfo> shared(regexp_fun->shared(), isolate);
|
| + shared->SetConstructStub(*isolate->builtins()->RegExpConstructor());
|
| + shared->set_instance_class_name(isolate->heap()->RegExp_string());
|
| + shared->DontAdaptArguments();
|
| + shared->set_length(2);
|
| +
|
| + // RegExp.prototype setup.
|
| +
|
| + // Install the "constructor" property on the {prototype}.
|
| + JSObject::AddProperty(prototype, factory->constructor_string(), regexp_fun,
|
| + DONT_ENUM);
|
| +
|
| + SimpleInstallFunction(prototype, "exec", Builtins::kRegExpPrototypeExec, 1,
|
| + true, DONT_ENUM);
|
|
|
| DCHECK(regexp_fun->has_initial_map());
|
| Handle<Map> initial_map(regexp_fun->initial_map());
|
| @@ -1673,15 +1686,6 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
|
| initial_map->set_unused_property_fields(0);
|
| initial_map->set_instance_size(initial_map->instance_size() +
|
| num_fields * kPointerSize);
|
| -
|
| - // RegExp.prototype setup.
|
| -
|
| - // Install the "constructor" property on the {prototype}.
|
| - JSObject::AddProperty(prototype, factory->constructor_string(), regexp_fun,
|
| - DONT_ENUM);
|
| -
|
| - SimpleInstallFunction(prototype, "exec", Builtins::kRegExpPrototypeExec, 1,
|
| - true, DONT_ENUM);
|
| }
|
|
|
| { // -- E r r o r
|
|
|