Chromium Code Reviews| Index: src/bootstrapper.cc |
| diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc |
| index 2852e8f4152d9665d9d2eda137f2e12e6b7dff40..63d855b777a15da62cccf46daa810b3446acc4b4 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,17 @@ 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); |
| + |
| + { |
|
Igor Sheludko
2016/09/29 15:01:34
Please remove this pair of braces.
jgruber
2016/09/30 06:53:26
Done.
|
| + // 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 |