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

Side by Side Diff: src/bootstrapper.cc

Issue 1397853005: [es6] Partially implement Reflect.preventExtensions. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: s/Object/JSObject/ Created 5 years, 2 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 | « no previous file | src/builtins.h » ('j') | src/builtins.cc » ('J')
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/base/utils/random-number-generator.h" 9 #include "src/base/utils/random-number-generator.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after
691 // %ThrowTypeError% must not have a name property. 691 // %ThrowTypeError% must not have a name property.
692 JSReceiver::DeleteProperty(function, factory()->name_string()).Assert(); 692 JSReceiver::DeleteProperty(function, factory()->name_string()).Assert();
693 693
694 // length needs to be non configurable. 694 // length needs to be non configurable.
695 Handle<Object> value(Smi::FromInt(function->shared()->length()), isolate()); 695 Handle<Object> value(Smi::FromInt(function->shared()->length()), isolate());
696 JSObject::SetOwnPropertyIgnoreAttributes( 696 JSObject::SetOwnPropertyIgnoreAttributes(
697 function, factory()->length_string(), value, 697 function, factory()->length_string(), value,
698 static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE | READ_ONLY)) 698 static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE | READ_ONLY))
699 .Assert(); 699 .Assert();
700 700
701 JSObject::PreventExtensions(function).Assert(); 701 if (JSObject::PreventExtensions(function, THROW_ON_ERROR).IsNothing())
702 DCHECK(false);
702 703
703 return function; 704 return function;
704 } 705 }
705 706
706 707
707 // ECMAScript 5th Edition, 13.2.3 708 // ECMAScript 5th Edition, 13.2.3
708 Handle<JSFunction> Genesis::GetRestrictedFunctionPropertiesThrower() { 709 Handle<JSFunction> Genesis::GetRestrictedFunctionPropertiesThrower() {
709 if (restricted_function_properties_thrower_.is_null()) { 710 if (restricted_function_properties_thrower_.is_null()) {
710 restricted_function_properties_thrower_ = GetThrowTypeErrorIntrinsic( 711 restricted_function_properties_thrower_ = GetThrowTypeErrorIntrinsic(
711 Builtins::kRestrictedFunctionPropertiesThrower); 712 Builtins::kRestrictedFunctionPropertiesThrower);
(...skipping 1206 matching lines...) Expand 10 before | Expand all | Expand 10 after
1918 JSObject::AddProperty(global, reflect_string, reflect, DONT_ENUM); 1919 JSObject::AddProperty(global, reflect_string, reflect, DONT_ENUM);
1919 1920
1920 SimpleInstallFunction(reflect, "deleteProperty", 1921 SimpleInstallFunction(reflect, "deleteProperty",
1921 Builtins::kReflectDeleteProperty, 2, true); 1922 Builtins::kReflectDeleteProperty, 2, true);
1922 SimpleInstallFunction(reflect, "get", 1923 SimpleInstallFunction(reflect, "get",
1923 Builtins::kReflectGet, 3, false); 1924 Builtins::kReflectGet, 3, false);
1924 SimpleInstallFunction(reflect, "has", 1925 SimpleInstallFunction(reflect, "has",
1925 Builtins::kReflectHas, 2, true); 1926 Builtins::kReflectHas, 2, true);
1926 SimpleInstallFunction(reflect, "isExtensible", 1927 SimpleInstallFunction(reflect, "isExtensible",
1927 Builtins::kReflectIsExtensible, 1, true); 1928 Builtins::kReflectIsExtensible, 1, true);
1929 SimpleInstallFunction(reflect, "preventExtensions",
1930 Builtins::kReflectPreventExtensions, 1, true);
1928 } 1931 }
1929 1932
1930 1933
1931 void Genesis::InitializeGlobal_harmony_sharedarraybuffer() { 1934 void Genesis::InitializeGlobal_harmony_sharedarraybuffer() {
1932 if (!FLAG_harmony_sharedarraybuffer) return; 1935 if (!FLAG_harmony_sharedarraybuffer) return;
1933 1936
1934 Handle<JSGlobalObject> global( 1937 Handle<JSGlobalObject> global(
1935 JSGlobalObject::cast(native_context()->global_object())); 1938 JSGlobalObject::cast(native_context()->global_object()));
1936 1939
1937 Handle<JSFunction> shared_array_buffer_fun = InstallFunction( 1940 Handle<JSFunction> shared_array_buffer_fun = InstallFunction(
(...skipping 1358 matching lines...) Expand 10 before | Expand all | Expand 10 after
3296 } 3299 }
3297 3300
3298 3301
3299 // Called when the top-level V8 mutex is destroyed. 3302 // Called when the top-level V8 mutex is destroyed.
3300 void Bootstrapper::FreeThreadResources() { 3303 void Bootstrapper::FreeThreadResources() {
3301 DCHECK(!IsActive()); 3304 DCHECK(!IsActive());
3302 } 3305 }
3303 3306
3304 } // namespace internal 3307 } // namespace internal
3305 } // namespace v8 3308 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/builtins.h » ('j') | src/builtins.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698