Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1014)

Side by Side Diff: src/bootstrapper.cc

Issue 1533803002: Revert of [es6] Correct Function.prototype.apply, Reflect.construct and Reflect.apply. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/arm64/builtins-arm64.cc ('k') | src/builtins.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/bootstrapper.h" 5 #include "src/bootstrapper.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/api-natives.h" 8 #include "src/api-natives.h"
9 #include "src/code-stubs.h" 9 #include "src/code-stubs.h"
10 #include "src/extensions/externalize-string-extension.h" 10 #include "src/extensions/externalize-string-extension.h"
(...skipping 1847 matching lines...) Expand 10 before | Expand all | Expand 10 after
1858 Handle<String> NAME##_name = factory->NewStringFromAsciiChecked(#NAME); \ 1858 Handle<String> NAME##_name = factory->NewStringFromAsciiChecked(#NAME); \
1859 JSObject::AddProperty(container, NAME##_name, factory->NAME(), NONE); 1859 JSObject::AddProperty(container, NAME##_name, factory->NAME(), NONE);
1860 PUBLIC_SYMBOL_LIST(EXPORT_PUBLIC_SYMBOL) 1860 PUBLIC_SYMBOL_LIST(EXPORT_PUBLIC_SYMBOL)
1861 WELL_KNOWN_SYMBOL_LIST(EXPORT_PUBLIC_SYMBOL) 1861 WELL_KNOWN_SYMBOL_LIST(EXPORT_PUBLIC_SYMBOL)
1862 #undef EXPORT_PUBLIC_SYMBOL 1862 #undef EXPORT_PUBLIC_SYMBOL
1863 1863
1864 { 1864 {
1865 Handle<JSFunction> apply = InstallFunction( 1865 Handle<JSFunction> apply = InstallFunction(
1866 container, "reflect_apply", JS_OBJECT_TYPE, JSObject::kHeaderSize, 1866 container, "reflect_apply", JS_OBJECT_TYPE, JSObject::kHeaderSize,
1867 MaybeHandle<JSObject>(), Builtins::kReflectApply); 1867 MaybeHandle<JSObject>(), Builtins::kReflectApply);
1868 apply->shared()->DontAdaptArguments(); 1868 apply->shared()->set_internal_formal_parameter_count(3);
1869 apply->shared()->set_length(3); 1869 apply->shared()->set_length(3);
1870 Handle<TypeFeedbackVector> feedback_vector =
1871 TypeFeedbackVector::CreatePushAppliedArgumentsVector(isolate);
1872 apply->shared()->set_feedback_vector(*feedback_vector);
1870 native_context->set_reflect_apply(*apply); 1873 native_context->set_reflect_apply(*apply);
1871 } 1874 }
1872 1875
1873 { 1876 {
1874 Handle<JSFunction> construct = InstallFunction( 1877 Handle<JSFunction> construct = InstallFunction(
1875 container, "reflect_construct", JS_OBJECT_TYPE, JSObject::kHeaderSize, 1878 container, "reflect_construct", JS_OBJECT_TYPE, JSObject::kHeaderSize,
1876 MaybeHandle<JSObject>(), Builtins::kReflectConstruct); 1879 MaybeHandle<JSObject>(), Builtins::kReflectConstruct);
1877 construct->shared()->DontAdaptArguments(); 1880 construct->shared()->set_internal_formal_parameter_count(3);
1878 construct->shared()->set_length(2); 1881 construct->shared()->set_length(2);
1882 Handle<TypeFeedbackVector> feedback_vector =
1883 TypeFeedbackVector::CreatePushAppliedArgumentsVector(isolate);
1884 construct->shared()->set_feedback_vector(*feedback_vector);
1879 native_context->set_reflect_construct(*construct); 1885 native_context->set_reflect_construct(*construct);
1880 } 1886 }
1881 1887
1882 { 1888 {
1883 Handle<JSFunction> to_string = InstallFunction( 1889 Handle<JSFunction> to_string = InstallFunction(
1884 container, "object_to_string", JS_OBJECT_TYPE, JSObject::kHeaderSize, 1890 container, "object_to_string", JS_OBJECT_TYPE, JSObject::kHeaderSize,
1885 MaybeHandle<JSObject>(), Builtins::kObjectProtoToString); 1891 MaybeHandle<JSObject>(), Builtins::kObjectProtoToString);
1886 to_string->shared()->DontAdaptArguments(); 1892 to_string->shared()->DontAdaptArguments();
1887 to_string->shared()->set_length(0); 1893 to_string->shared()->set_length(0);
1888 native_context->set_object_to_string(*to_string); 1894 native_context->set_object_to_string(*to_string);
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after
2522 Handle<JSObject> proto = 2528 Handle<JSObject> proto =
2523 Handle<JSObject>(JSObject::cast(function->instance_prototype())); 2529 Handle<JSObject>(JSObject::cast(function->instance_prototype()));
2524 2530
2525 // Install the call and the apply functions. 2531 // Install the call and the apply functions.
2526 Handle<JSFunction> call = 2532 Handle<JSFunction> call =
2527 InstallFunction(proto, "call", JS_OBJECT_TYPE, JSObject::kHeaderSize, 2533 InstallFunction(proto, "call", JS_OBJECT_TYPE, JSObject::kHeaderSize,
2528 MaybeHandle<JSObject>(), Builtins::kFunctionCall); 2534 MaybeHandle<JSObject>(), Builtins::kFunctionCall);
2529 Handle<JSFunction> apply = 2535 Handle<JSFunction> apply =
2530 InstallFunction(proto, "apply", JS_OBJECT_TYPE, JSObject::kHeaderSize, 2536 InstallFunction(proto, "apply", JS_OBJECT_TYPE, JSObject::kHeaderSize,
2531 MaybeHandle<JSObject>(), Builtins::kFunctionApply); 2537 MaybeHandle<JSObject>(), Builtins::kFunctionApply);
2538 Handle<TypeFeedbackVector> feedback_vector =
2539 TypeFeedbackVector::CreatePushAppliedArgumentsVector(isolate());
2540 apply->shared()->set_feedback_vector(*feedback_vector);
2532 2541
2533 // Make sure that Function.prototype.call appears to be compiled. 2542 // Make sure that Function.prototype.call appears to be compiled.
2534 // The code will never be called, but inline caching for call will 2543 // The code will never be called, but inline caching for call will
2535 // only work if it appears to be compiled. 2544 // only work if it appears to be compiled.
2536 apply->shared()->DontAdaptArguments();
2537 call->shared()->DontAdaptArguments(); 2545 call->shared()->DontAdaptArguments();
2538 DCHECK(call->is_compiled()); 2546 DCHECK(call->is_compiled());
2539 2547
2548 // Set the expected parameters for apply to 2; required by builtin.
2549 apply->shared()->set_internal_formal_parameter_count(2);
2550
2540 // Set the lengths for the functions to satisfy ECMA-262. 2551 // Set the lengths for the functions to satisfy ECMA-262.
2552 call->shared()->set_length(1);
2541 apply->shared()->set_length(2); 2553 apply->shared()->set_length(2);
2542 call->shared()->set_length(1);
2543 } 2554 }
2544 2555
2545 // Set up the Promise constructor. 2556 // Set up the Promise constructor.
2546 { 2557 {
2547 Handle<String> key = factory()->Promise_string(); 2558 Handle<String> key = factory()->Promise_string();
2548 Handle<JSFunction> function = Handle<JSFunction>::cast( 2559 Handle<JSFunction> function = Handle<JSFunction>::cast(
2549 Object::GetProperty(handle(native_context()->global_object()), key) 2560 Object::GetProperty(handle(native_context()->global_object()), key)
2550 .ToHandleChecked()); 2561 .ToHandleChecked());
2551 JSFunction::EnsureHasInitialMap(function); 2562 JSFunction::EnsureHasInitialMap(function);
2552 function->initial_map()->set_instance_type(JS_PROMISE_TYPE); 2563 function->initial_map()->set_instance_type(JS_PROMISE_TYPE);
(...skipping 799 matching lines...) Expand 10 before | Expand all | Expand 10 after
3352 } 3363 }
3353 3364
3354 3365
3355 // Called when the top-level V8 mutex is destroyed. 3366 // Called when the top-level V8 mutex is destroyed.
3356 void Bootstrapper::FreeThreadResources() { 3367 void Bootstrapper::FreeThreadResources() {
3357 DCHECK(!IsActive()); 3368 DCHECK(!IsActive());
3358 } 3369 }
3359 3370
3360 } // namespace internal 3371 } // namespace internal
3361 } // namespace v8 3372 } // namespace v8
OLDNEW
« no previous file with comments | « src/arm64/builtins-arm64.cc ('k') | src/builtins.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698