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

Side by Side Diff: src/bootstrapper.cc

Issue 1721453002: Remove Reflect.enumerate (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: private symbols passes Created 4 years, 10 months 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 | « BUILD.gn ('k') | src/js/harmony-reflect.js » ('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 2064 matching lines...) Expand 10 before | Expand all | Expand 10 after
2075 #undef EXPORT_PRIVATE_SYMBOL 2075 #undef EXPORT_PRIVATE_SYMBOL
2076 2076
2077 #define EXPORT_PUBLIC_SYMBOL(NAME, DESCRIPTION) \ 2077 #define EXPORT_PUBLIC_SYMBOL(NAME, DESCRIPTION) \
2078 Handle<String> NAME##_name = factory->NewStringFromAsciiChecked(#NAME); \ 2078 Handle<String> NAME##_name = factory->NewStringFromAsciiChecked(#NAME); \
2079 JSObject::AddProperty(container, NAME##_name, factory->NAME(), NONE); 2079 JSObject::AddProperty(container, NAME##_name, factory->NAME(), NONE);
2080 PUBLIC_SYMBOL_LIST(EXPORT_PUBLIC_SYMBOL) 2080 PUBLIC_SYMBOL_LIST(EXPORT_PUBLIC_SYMBOL)
2081 WELL_KNOWN_SYMBOL_LIST(EXPORT_PUBLIC_SYMBOL) 2081 WELL_KNOWN_SYMBOL_LIST(EXPORT_PUBLIC_SYMBOL)
2082 #undef EXPORT_PUBLIC_SYMBOL 2082 #undef EXPORT_PUBLIC_SYMBOL
2083 2083
2084 { 2084 {
2085 Handle<JSFunction> apply = InstallFunction(
2086 container, "reflect_apply", JS_OBJECT_TYPE, JSObject::kHeaderSize,
2087 MaybeHandle<JSObject>(), Builtins::kReflectApply);
2088 apply->shared()->DontAdaptArguments();
2089 apply->shared()->set_length(3);
2090 native_context->set_reflect_apply(*apply);
2091 }
2092
2093 {
2094 Handle<JSFunction> construct = InstallFunction(
2095 container, "reflect_construct", JS_OBJECT_TYPE, JSObject::kHeaderSize,
2096 MaybeHandle<JSObject>(), Builtins::kReflectConstruct);
2097 construct->shared()->DontAdaptArguments();
2098 construct->shared()->set_length(2);
2099 native_context->set_reflect_construct(*construct);
2100 }
2101
2102 {
2103 Handle<JSFunction> to_string = InstallFunction( 2085 Handle<JSFunction> to_string = InstallFunction(
2104 container, "object_to_string", JS_OBJECT_TYPE, JSObject::kHeaderSize, 2086 container, "object_to_string", JS_OBJECT_TYPE, JSObject::kHeaderSize,
2105 MaybeHandle<JSObject>(), Builtins::kObjectProtoToString); 2087 MaybeHandle<JSObject>(), Builtins::kObjectProtoToString);
2106 to_string->shared()->DontAdaptArguments(); 2088 to_string->shared()->DontAdaptArguments();
2107 to_string->shared()->set_length(0); 2089 to_string->shared()->set_length(0);
2108 native_context->set_object_to_string(*to_string); 2090 native_context->set_object_to_string(*to_string);
2109 } 2091 }
2110 2092
2111 Handle<JSObject> iterator_prototype; 2093 Handle<JSObject> iterator_prototype;
2112 2094
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
2406 Handle<JSFunction> define_property = 2388 Handle<JSFunction> define_property =
2407 SimpleCreateFunction(isolate(), factory->defineProperty_string(), 2389 SimpleCreateFunction(isolate(), factory->defineProperty_string(),
2408 Builtins::kReflectDefineProperty, 3, true); 2390 Builtins::kReflectDefineProperty, 3, true);
2409 native_context()->set_reflect_define_property(*define_property); 2391 native_context()->set_reflect_define_property(*define_property);
2410 2392
2411 Handle<JSFunction> delete_property = 2393 Handle<JSFunction> delete_property =
2412 SimpleCreateFunction(isolate(), factory->deleteProperty_string(), 2394 SimpleCreateFunction(isolate(), factory->deleteProperty_string(),
2413 Builtins::kReflectDeleteProperty, 2, true); 2395 Builtins::kReflectDeleteProperty, 2, true);
2414 native_context()->set_reflect_delete_property(*delete_property); 2396 native_context()->set_reflect_delete_property(*delete_property);
2415 2397
2398 Handle<JSFunction> apply = SimpleCreateFunction(
2399 isolate(), factory->apply_string(), Builtins::kReflectApply, 3, false);
2400 native_context()->set_reflect_apply(*apply);
2401
2402 Handle<JSFunction> construct =
2403 SimpleCreateFunction(isolate(), factory->construct_string(),
2404 Builtins::kReflectConstruct, 2, false);
2405 native_context()->set_reflect_construct(*construct);
2406
2416 if (!FLAG_harmony_reflect) return; 2407 if (!FLAG_harmony_reflect) return;
2417 2408
2418 Handle<JSGlobalObject> global(JSGlobalObject::cast( 2409 Handle<JSGlobalObject> global(JSGlobalObject::cast(
2419 native_context()->global_object())); 2410 native_context()->global_object()));
2420 Handle<String> reflect_string = factory->NewStringFromStaticChars("Reflect"); 2411 Handle<String> reflect_string = factory->NewStringFromStaticChars("Reflect");
2421 Handle<JSObject> reflect = 2412 Handle<JSObject> reflect =
2422 factory->NewJSObject(isolate()->object_function(), TENURED); 2413 factory->NewJSObject(isolate()->object_function(), TENURED);
2423 JSObject::AddProperty(global, reflect_string, reflect, DONT_ENUM); 2414 JSObject::AddProperty(global, reflect_string, reflect, DONT_ENUM);
2424 2415
2425 InstallFunction(reflect, define_property, factory->defineProperty_string()); 2416 InstallFunction(reflect, define_property, factory->defineProperty_string());
2426 InstallFunction(reflect, delete_property, factory->deleteProperty_string()); 2417 InstallFunction(reflect, delete_property, factory->deleteProperty_string());
2418 InstallFunction(reflect, apply, factory->apply_string());
2419 InstallFunction(reflect, construct, factory->construct_string());
2427 2420
2428 SimpleInstallFunction(reflect, factory->get_string(), 2421 SimpleInstallFunction(reflect, factory->get_string(),
2429 Builtins::kReflectGet, 2, false); 2422 Builtins::kReflectGet, 2, false);
2430 SimpleInstallFunction(reflect, factory->getOwnPropertyDescriptor_string(), 2423 SimpleInstallFunction(reflect, factory->getOwnPropertyDescriptor_string(),
2431 Builtins::kReflectGetOwnPropertyDescriptor, 2, true); 2424 Builtins::kReflectGetOwnPropertyDescriptor, 2, true);
2432 SimpleInstallFunction(reflect, factory->getPrototypeOf_string(), 2425 SimpleInstallFunction(reflect, factory->getPrototypeOf_string(),
2433 Builtins::kReflectGetPrototypeOf, 1, true); 2426 Builtins::kReflectGetPrototypeOf, 1, true);
2434 SimpleInstallFunction(reflect, factory->has_string(), 2427 SimpleInstallFunction(reflect, factory->has_string(),
2435 Builtins::kReflectHas, 2, true); 2428 Builtins::kReflectHas, 2, true);
2436 SimpleInstallFunction(reflect, factory->isExtensible_string(), 2429 SimpleInstallFunction(reflect, factory->isExtensible_string(),
(...skipping 1243 matching lines...) Expand 10 before | Expand all | Expand 10 after
3680 } 3673 }
3681 3674
3682 3675
3683 // Called when the top-level V8 mutex is destroyed. 3676 // Called when the top-level V8 mutex is destroyed.
3684 void Bootstrapper::FreeThreadResources() { 3677 void Bootstrapper::FreeThreadResources() {
3685 DCHECK(!IsActive()); 3678 DCHECK(!IsActive());
3686 } 3679 }
3687 3680
3688 } // namespace internal 3681 } // namespace internal
3689 } // namespace v8 3682 } // namespace v8
OLDNEW
« no previous file with comments | « BUILD.gn ('k') | src/js/harmony-reflect.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698