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 |