| Index: src/bootstrapper.cc
|
| diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
|
| index 2852e8f4152d9665d9d2eda137f2e12e6b7dff40..2adc56d9e21e68ca73533e1d334eefe186496c7c 100644
|
| --- a/src/bootstrapper.cc
|
| +++ b/src/bootstrapper.cc
|
| @@ -1635,9 +1635,11 @@ void Genesis::InitializeGlobal(Handle<JSGlobalObject> global_object,
|
|
|
| { // -- R e g E x p
|
| // Builtin functions for RegExp.prototype.
|
| - Handle<JSFunction> regexp_fun = InstallFunction(
|
| - global, "RegExp", JS_REGEXP_TYPE, JSRegExp::kSize,
|
| - isolate->initial_object_prototype(), Builtins::kIllegal);
|
| + Handle<JSObject> prototype =
|
| + factory->NewJSObject(isolate->object_function(), TENURED);
|
| + Handle<JSFunction> regexp_fun =
|
| + InstallFunction(global, "RegExp", JS_REGEXP_TYPE, JSRegExp::kSize,
|
| + prototype, Builtins::kIllegal);
|
| InstallWithIntrinsicDefaultProto(isolate, regexp_fun,
|
| Context::REGEXP_FUNCTION_INDEX);
|
| regexp_fun->shared()->SetConstructStub(
|
| @@ -1663,6 +1665,15 @@ 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
|
|
|