Index: src/bootstrapper.cc |
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc |
index 2f2216b13e80a9851ca78f38e2624b24e43e4b94..4bcebaa8d687d6679a3562f0e4ce9d320486a1e2 100644 |
--- a/src/bootstrapper.cc |
+++ b/src/bootstrapper.cc |
@@ -1803,23 +1803,29 @@ void Bootstrapper::ExportFromRuntime(Isolate* isolate, |
PUBLIC_SYMBOL_LIST(EXPORT_PUBLIC_SYMBOL) |
#undef EXPORT_PUBLIC_SYMBOL |
- Handle<JSFunction> apply = InstallFunction( |
- container, "reflect_apply", JS_OBJECT_TYPE, JSObject::kHeaderSize, |
- MaybeHandle<JSObject>(), Builtins::kReflectApply); |
- apply->shared()->set_internal_formal_parameter_count(3); |
- apply->shared()->set_length(3); |
- apply->shared()->set_feedback_vector( |
- *TypeFeedbackVector::CreatePushAppliedArgumentsVector(isolate)); |
Michael Starzinger
2015/10/01 17:37:48
Holy sh*t, GCMole didn't find this, that is concer
Benedikt Meurer
2015/10/01 17:52:23
Good point. Can you look into this Michi?
|
- isolate->native_context()->set_reflect_apply(*apply); |
- |
- Handle<JSFunction> construct = InstallFunction( |
- container, "reflect_construct", JS_OBJECT_TYPE, JSObject::kHeaderSize, |
- MaybeHandle<JSObject>(), Builtins::kReflectConstruct); |
- construct->shared()->set_internal_formal_parameter_count(3); |
- construct->shared()->set_length(2); |
- construct->shared()->set_feedback_vector( |
- *TypeFeedbackVector::CreatePushAppliedArgumentsVector(isolate)); |
- isolate->native_context()->set_reflect_construct(*construct); |
+ { |
+ Handle<JSFunction> apply = InstallFunction( |
+ container, "reflect_apply", JS_OBJECT_TYPE, JSObject::kHeaderSize, |
+ MaybeHandle<JSObject>(), Builtins::kReflectApply); |
+ apply->shared()->set_internal_formal_parameter_count(3); |
+ apply->shared()->set_length(3); |
+ Handle<TypeFeedbackVector> feedback_vector = |
+ TypeFeedbackVector::CreatePushAppliedArgumentsVector(isolate); |
+ apply->shared()->set_feedback_vector(*feedback_vector); |
+ isolate->native_context()->set_reflect_apply(*apply); |
+ } |
+ |
+ { |
+ Handle<JSFunction> construct = InstallFunction( |
+ container, "reflect_construct", JS_OBJECT_TYPE, JSObject::kHeaderSize, |
+ MaybeHandle<JSObject>(), Builtins::kReflectConstruct); |
+ construct->shared()->set_internal_formal_parameter_count(3); |
+ construct->shared()->set_length(2); |
+ Handle<TypeFeedbackVector> feedback_vector = |
+ TypeFeedbackVector::CreatePushAppliedArgumentsVector(isolate); |
+ construct->shared()->set_feedback_vector(*feedback_vector); |
+ isolate->native_context()->set_reflect_construct(*construct); |
+ } |
} |
@@ -2421,8 +2427,9 @@ bool Genesis::InstallNatives(ContextType context_type) { |
Handle<JSFunction> apply = |
InstallFunction(proto, "apply", JS_OBJECT_TYPE, JSObject::kHeaderSize, |
MaybeHandle<JSObject>(), Builtins::kFunctionApply); |
- apply->shared()->set_feedback_vector( |
- *TypeFeedbackVector::CreatePushAppliedArgumentsVector(isolate())); |
+ Handle<TypeFeedbackVector> feedback_vector = |
+ TypeFeedbackVector::CreatePushAppliedArgumentsVector(isolate()); |
+ apply->shared()->set_feedback_vector(*feedback_vector); |
// Make sure that Function.prototype.call appears to be compiled. |
// The code will never be called, but inline caching for call will |