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

Side by Side Diff: src/objects.cc

Issue 331693006: Remove specialized access checks and overwrites altogether. They are already handled by GetOwnPrope… (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Unlike GetProperty, GetPropertyAttributes does not promote the exception Created 6 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « src/objects.h ('k') | src/runtime.cc » ('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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/allocation-site-scopes.h" 8 #include "src/allocation-site-scopes.h"
9 #include "src/api.h" 9 #include "src/api.h"
10 #include "src/arguments.h" 10 #include "src/arguments.h"
(...skipping 12148 matching lines...) Expand 10 before | Expand all | Expand 10 after
12159 uint32_t arg_count, 12159 uint32_t arg_count,
12160 EnsureElementsMode mode) { 12160 EnsureElementsMode mode) {
12161 // Elements in |Arguments| are ordered backwards (because they're on the 12161 // Elements in |Arguments| are ordered backwards (because they're on the
12162 // stack), but the method that's called here iterates over them in forward 12162 // stack), but the method that's called here iterates over them in forward
12163 // direction. 12163 // direction.
12164 return EnsureCanContainElements( 12164 return EnsureCanContainElements(
12165 object, args->arguments() - first_arg - (arg_count - 1), arg_count, mode); 12165 object, args->arguments() - first_arg - (arg_count - 1), arg_count, mode);
12166 } 12166 }
12167 12167
12168 12168
12169 MaybeHandle<AccessorPair> JSObject::GetOwnPropertyAccessorPair(
12170 Handle<JSObject> object,
12171 Handle<Name> name) {
12172 uint32_t index = 0;
12173 if (name->AsArrayIndex(&index)) {
12174 return GetOwnElementAccessorPair(object, index);
12175 }
12176
12177 Isolate* isolate = object->GetIsolate();
12178 LookupResult lookup(isolate);
12179 object->LookupOwnRealNamedProperty(name, &lookup);
12180
12181 if (lookup.IsPropertyCallbacks() &&
12182 lookup.GetCallbackObject()->IsAccessorPair()) {
12183 return handle(AccessorPair::cast(lookup.GetCallbackObject()), isolate);
12184 }
12185 return MaybeHandle<AccessorPair>();
12186 }
12187
12188
12189 MaybeHandle<AccessorPair> JSObject::GetOwnElementAccessorPair( 12169 MaybeHandle<AccessorPair> JSObject::GetOwnElementAccessorPair(
12190 Handle<JSObject> object, 12170 Handle<JSObject> object,
12191 uint32_t index) { 12171 uint32_t index) {
12192 if (object->IsJSGlobalProxy()) { 12172 if (object->IsJSGlobalProxy()) {
12193 Handle<Object> proto(object->GetPrototype(), object->GetIsolate()); 12173 Handle<Object> proto(object->GetPrototype(), object->GetIsolate());
12194 if (proto->IsNull()) return MaybeHandle<AccessorPair>(); 12174 if (proto->IsNull()) return MaybeHandle<AccessorPair>();
12195 ASSERT(proto->IsJSGlobalObject()); 12175 ASSERT(proto->IsJSGlobalObject());
12196 return GetOwnElementAccessorPair(Handle<JSObject>::cast(proto), index); 12176 return GetOwnElementAccessorPair(Handle<JSObject>::cast(proto), index);
12197 } 12177 }
12198 12178
(...skipping 4744 matching lines...) Expand 10 before | Expand all | Expand 10 after
16943 #define ERROR_MESSAGES_TEXTS(C, T) T, 16923 #define ERROR_MESSAGES_TEXTS(C, T) T,
16944 static const char* error_messages_[] = { 16924 static const char* error_messages_[] = {
16945 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) 16925 ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS)
16946 }; 16926 };
16947 #undef ERROR_MESSAGES_TEXTS 16927 #undef ERROR_MESSAGES_TEXTS
16948 return error_messages_[reason]; 16928 return error_messages_[reason];
16949 } 16929 }
16950 16930
16951 16931
16952 } } // namespace v8::internal 16932 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/objects.h ('k') | src/runtime.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698