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

Side by Side Diff: src/objects.h

Issue 321543004: Rewrite GetPropertyAttribute to use the LookupIterator (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Remove bogus asserts 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/lookup.cc ('k') | src/objects.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 #ifndef V8_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/assert-scope.h" 9 #include "src/assert-scope.h"
10 #include "src/builtins.h" 10 #include "src/builtins.h"
(...skipping 1936 matching lines...) Expand 10 before | Expand all | Expand 10 after
1947 // Tests for the fast common case for property enumeration. 1947 // Tests for the fast common case for property enumeration.
1948 bool IsSimpleEnum(); 1948 bool IsSimpleEnum();
1949 1949
1950 // Returns the class name ([[Class]] property in the specification). 1950 // Returns the class name ([[Class]] property in the specification).
1951 String* class_name(); 1951 String* class_name();
1952 1952
1953 // Returns the constructor name (the name (possibly, inferred name) of the 1953 // Returns the constructor name (the name (possibly, inferred name) of the
1954 // function that was used to instantiate the object). 1954 // function that was used to instantiate the object).
1955 String* constructor_name(); 1955 String* constructor_name();
1956 1956
1957 static inline PropertyAttributes GetPropertyAttribute( 1957 static inline PropertyAttributes GetPropertyAttributes(
1958 Handle<JSReceiver> object, 1958 Handle<JSReceiver> object,
1959 Handle<Name> name); 1959 Handle<Name> name);
1960 static PropertyAttributes GetPropertyAttributeWithReceiver( 1960 static PropertyAttributes GetPropertyAttributes(LookupIterator* it);
1961 Handle<JSReceiver> object, 1961 static PropertyAttributes GetOwnPropertyAttributes(
1962 Handle<JSReceiver> receiver,
1963 Handle<Name> name);
1964 static PropertyAttributes GetOwnPropertyAttribute(
1965 Handle<JSReceiver> object, 1962 Handle<JSReceiver> object,
1966 Handle<Name> name); 1963 Handle<Name> name);
1967 1964
1968 static inline PropertyAttributes GetElementAttribute( 1965 static inline PropertyAttributes GetElementAttribute(
1969 Handle<JSReceiver> object, 1966 Handle<JSReceiver> object,
1970 uint32_t index); 1967 uint32_t index);
1971 static inline PropertyAttributes GetOwnElementAttribute( 1968 static inline PropertyAttributes GetOwnElementAttribute(
1972 Handle<JSReceiver> object, 1969 Handle<JSReceiver> object,
1973 uint32_t index); 1970 uint32_t index);
1974 1971
(...skipping 20 matching lines...) Expand all
1995 1992
1996 enum KeyCollectionType { OWN_ONLY, INCLUDE_PROTOS }; 1993 enum KeyCollectionType { OWN_ONLY, INCLUDE_PROTOS };
1997 1994
1998 // Computes the enumerable keys for a JSObject. Used for implementing 1995 // Computes the enumerable keys for a JSObject. Used for implementing
1999 // "for (n in object) { }". 1996 // "for (n in object) { }".
2000 MUST_USE_RESULT static MaybeHandle<FixedArray> GetKeys( 1997 MUST_USE_RESULT static MaybeHandle<FixedArray> GetKeys(
2001 Handle<JSReceiver> object, 1998 Handle<JSReceiver> object,
2002 KeyCollectionType type); 1999 KeyCollectionType type);
2003 2000
2004 private: 2001 private:
2005 static PropertyAttributes GetPropertyAttributeForResult(
2006 Handle<JSReceiver> object,
2007 Handle<JSReceiver> receiver,
2008 LookupResult* result,
2009 Handle<Name> name,
2010 bool continue_search);
2011
2012 MUST_USE_RESULT static MaybeHandle<Object> SetProperty( 2002 MUST_USE_RESULT static MaybeHandle<Object> SetProperty(
2013 Handle<JSReceiver> receiver, 2003 Handle<JSReceiver> receiver,
2014 LookupResult* result, 2004 LookupResult* result,
2015 Handle<Name> key, 2005 Handle<Name> key,
2016 Handle<Object> value, 2006 Handle<Object> value,
2017 PropertyAttributes attributes, 2007 PropertyAttributes attributes,
2018 StrictMode strict_mode, 2008 StrictMode strict_mode,
2019 StoreFromKeyed store_from_keyed); 2009 StoreFromKeyed store_from_keyed);
2020 2010
2021 DISALLOW_IMPLICIT_CONSTRUCTORS(JSReceiver); 2011 DISALLOW_IMPLICIT_CONSTRUCTORS(JSReceiver);
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
2202 Handle<Object> value, 2192 Handle<Object> value,
2203 PropertyDetails details); 2193 PropertyDetails details);
2204 2194
2205 static void OptimizeAsPrototype(Handle<JSObject> object); 2195 static void OptimizeAsPrototype(Handle<JSObject> object);
2206 2196
2207 // Retrieve interceptors. 2197 // Retrieve interceptors.
2208 InterceptorInfo* GetNamedInterceptor(); 2198 InterceptorInfo* GetNamedInterceptor();
2209 InterceptorInfo* GetIndexedInterceptor(); 2199 InterceptorInfo* GetIndexedInterceptor();
2210 2200
2211 // Used from JSReceiver. 2201 // Used from JSReceiver.
2212 static PropertyAttributes GetPropertyAttributePostInterceptor( 2202 static Maybe<PropertyAttributes> GetPropertyAttributesWithInterceptor(
2213 Handle<JSObject> object, 2203 Handle<JSObject> holder,
2214 Handle<JSObject> receiver, 2204 Handle<Object> receiver,
2215 Handle<Name> name, 2205 Handle<Name> name);
2216 bool check_prototype); 2206 static PropertyAttributes GetPropertyAttributesWithFailedAccessCheck(
2217 static PropertyAttributes GetPropertyAttributeWithInterceptor( 2207 LookupIterator* it);
2218 Handle<JSObject> object,
2219 Handle<JSObject> receiver,
2220 Handle<Name> name,
2221 bool check_prototype);
2222 static PropertyAttributes GetPropertyAttributeWithFailedAccessCheck(
2223 Handle<JSObject> object,
2224 LookupResult* result,
2225 Handle<Name> name,
2226 bool check_prototype);
2227 static PropertyAttributes GetElementAttributeWithReceiver( 2208 static PropertyAttributes GetElementAttributeWithReceiver(
2228 Handle<JSObject> object, 2209 Handle<JSObject> object,
2229 Handle<JSReceiver> receiver, 2210 Handle<JSReceiver> receiver,
2230 uint32_t index, 2211 uint32_t index,
2231 bool check_prototype); 2212 bool check_prototype);
2232 2213
2233 // Retrieves an AccessorPair property from the given object. Might return 2214 // Retrieves an AccessorPair property from the given object. Might return
2234 // undefined if the property doesn't exist or is of a different kind. 2215 // undefined if the property doesn't exist or is of a different kind.
2235 MUST_USE_RESULT static MaybeHandle<Object> GetAccessor( 2216 MUST_USE_RESULT static MaybeHandle<Object> GetAccessor(
2236 Handle<JSObject> object, 2217 Handle<JSObject> object,
(...skipping 7719 matching lines...) Expand 10 before | Expand all | Expand 10 after
9956 MUST_USE_RESULT 9937 MUST_USE_RESULT
9957 static MaybeHandle<Object> SetPropertyViaPrototypesWithHandler( 9938 static MaybeHandle<Object> SetPropertyViaPrototypesWithHandler(
9958 Handle<JSProxy> proxy, 9939 Handle<JSProxy> proxy,
9959 Handle<JSReceiver> receiver, 9940 Handle<JSReceiver> receiver,
9960 Handle<Name> name, 9941 Handle<Name> name,
9961 Handle<Object> value, 9942 Handle<Object> value,
9962 PropertyAttributes attributes, 9943 PropertyAttributes attributes,
9963 StrictMode strict_mode, 9944 StrictMode strict_mode,
9964 bool* done); 9945 bool* done);
9965 9946
9966 static PropertyAttributes GetPropertyAttributeWithHandler( 9947 static PropertyAttributes GetPropertyAttributesWithHandler(
9967 Handle<JSProxy> proxy, 9948 Handle<JSProxy> proxy,
9968 Handle<JSReceiver> receiver, 9949 Handle<Object> receiver,
9969 Handle<Name> name); 9950 Handle<Name> name);
9970 static PropertyAttributes GetElementAttributeWithHandler( 9951 static PropertyAttributes GetElementAttributeWithHandler(
9971 Handle<JSProxy> proxy, 9952 Handle<JSProxy> proxy,
9972 Handle<JSReceiver> receiver, 9953 Handle<JSReceiver> receiver,
9973 uint32_t index); 9954 uint32_t index);
9974 9955
9975 // Turn the proxy into an (empty) JSObject. 9956 // Turn the proxy into an (empty) JSObject.
9976 static void Fix(Handle<JSProxy> proxy); 9957 static void Fix(Handle<JSProxy> proxy);
9977 9958
9978 // Initializes the body after the handler slot. 9959 // Initializes the body after the handler slot.
(...skipping 1255 matching lines...) Expand 10 before | Expand all | Expand 10 after
11234 } else { 11215 } else {
11235 value &= ~(1 << bit_position); 11216 value &= ~(1 << bit_position);
11236 } 11217 }
11237 return value; 11218 return value;
11238 } 11219 }
11239 }; 11220 };
11240 11221
11241 } } // namespace v8::internal 11222 } } // namespace v8::internal
11242 11223
11243 #endif // V8_OBJECTS_H_ 11224 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/lookup.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698