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

Side by Side Diff: src/objects.h

Issue 50011: Revert change 1509 that flush ICs when adding setters on an object or... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 11 years, 9 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/messages.js ('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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 1182 matching lines...) Expand 10 before | Expand all | Expand 10 after
1193 1193
1194 // Retrieve interceptors. 1194 // Retrieve interceptors.
1195 InterceptorInfo* GetNamedInterceptor(); 1195 InterceptorInfo* GetNamedInterceptor();
1196 InterceptorInfo* GetIndexedInterceptor(); 1196 InterceptorInfo* GetIndexedInterceptor();
1197 1197
1198 inline PropertyAttributes GetPropertyAttribute(String* name); 1198 inline PropertyAttributes GetPropertyAttribute(String* name);
1199 PropertyAttributes GetPropertyAttributeWithReceiver(JSObject* receiver, 1199 PropertyAttributes GetPropertyAttributeWithReceiver(JSObject* receiver,
1200 String* name); 1200 String* name);
1201 PropertyAttributes GetLocalPropertyAttribute(String* name); 1201 PropertyAttributes GetLocalPropertyAttribute(String* name);
1202 1202
1203 // Defines an accessor. This may violate some of the assumptions we
1204 // make when setting up ics so unless it is guaranteed that no ics
1205 // exist for this property we have to clear all ics. Set the 'never_used'
1206 // flag to true if you know there can be no ics.
1207 Object* DefineAccessor(String* name, bool is_getter, JSFunction* fun, 1203 Object* DefineAccessor(String* name, bool is_getter, JSFunction* fun,
1208 PropertyAttributes attributes, bool never_used); 1204 PropertyAttributes attributes);
1209
1210 Object* LookupAccessor(String* name, bool is_getter); 1205 Object* LookupAccessor(String* name, bool is_getter);
1211 1206
1212 // Used from Object::GetProperty(). 1207 // Used from Object::GetProperty().
1213 Object* GetPropertyWithFailedAccessCheck(Object* receiver, 1208 Object* GetPropertyWithFailedAccessCheck(Object* receiver,
1214 LookupResult* result, 1209 LookupResult* result,
1215 String* name, 1210 String* name,
1216 PropertyAttributes* attributes); 1211 PropertyAttributes* attributes);
1217 Object* GetPropertyWithInterceptor(JSObject* receiver, 1212 Object* GetPropertyWithInterceptor(JSObject* receiver,
1218 String* name, 1213 String* name,
1219 PropertyAttributes* attributes); 1214 PropertyAttributes* attributes);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1271 Object* GetElementWithReceiver(JSObject* receiver, uint32_t index); 1266 Object* GetElementWithReceiver(JSObject* receiver, uint32_t index);
1272 1267
1273 void SetFastElements(FixedArray* elements); 1268 void SetFastElements(FixedArray* elements);
1274 Object* SetSlowElements(Object* length); 1269 Object* SetSlowElements(Object* length);
1275 1270
1276 // Lookup interceptors are used for handling properties controlled by host 1271 // Lookup interceptors are used for handling properties controlled by host
1277 // objects. 1272 // objects.
1278 inline bool HasNamedInterceptor(); 1273 inline bool HasNamedInterceptor();
1279 inline bool HasIndexedInterceptor(); 1274 inline bool HasIndexedInterceptor();
1280 1275
1281 bool HasLocalPropertyWithType(PropertyType type);
1282
1283 // Support functions for v8 api (needed for correct interceptor behavior). 1276 // Support functions for v8 api (needed for correct interceptor behavior).
1284 bool HasRealNamedProperty(String* key); 1277 bool HasRealNamedProperty(String* key);
1285 bool HasRealElementProperty(uint32_t index); 1278 bool HasRealElementProperty(uint32_t index);
1286 bool HasRealNamedCallbackProperty(String* key); 1279 bool HasRealNamedCallbackProperty(String* key);
1287 1280
1288 // Initializes the array to a certain length 1281 // Initializes the array to a certain length
1289 Object* SetElementsLength(Object* length); 1282 Object* SetElementsLength(Object* length);
1290 1283
1291 // Get the header size for a JSObject. Used to compute the index of 1284 // Get the header size for a JSObject. Used to compute the index of
1292 // internal fields as well as the number of internal fields. 1285 // internal fields as well as the number of internal fields.
(...skipping 3015 matching lines...) Expand 10 before | Expand all | Expand 10 after
4308 } else { 4301 } else {
4309 value &= ~(1 << bit_position); 4302 value &= ~(1 << bit_position);
4310 } 4303 }
4311 return value; 4304 return value;
4312 } 4305 }
4313 }; 4306 };
4314 4307
4315 } } // namespace v8::internal 4308 } } // namespace v8::internal
4316 4309
4317 #endif // V8_OBJECTS_H_ 4310 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/messages.js ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698