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

Side by Side Diff: src/objects.h

Issue 155682: Get rid of unnecessary handle management when invoking interceptors. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years, 4 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/ia32/stub-cache-ia32.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 2006-2009 the V8 project authors. All rights reserved. 1 // Copyright 2006-2009 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 1490 matching lines...) Expand 10 before | Expand all | Expand 10 after
1501 1501
1502 // The following lookup functions skip interceptors. 1502 // The following lookup functions skip interceptors.
1503 void LocalLookupRealNamedProperty(String* name, LookupResult* result); 1503 void LocalLookupRealNamedProperty(String* name, LookupResult* result);
1504 void LookupRealNamedProperty(String* name, LookupResult* result); 1504 void LookupRealNamedProperty(String* name, LookupResult* result);
1505 void LookupRealNamedPropertyInPrototypes(String* name, LookupResult* result); 1505 void LookupRealNamedPropertyInPrototypes(String* name, LookupResult* result);
1506 void LookupCallbackSetterInPrototypes(String* name, LookupResult* result); 1506 void LookupCallbackSetterInPrototypes(String* name, LookupResult* result);
1507 Object* LookupCallbackSetterInPrototypes(uint32_t index); 1507 Object* LookupCallbackSetterInPrototypes(uint32_t index);
1508 void LookupCallback(String* name, LookupResult* result); 1508 void LookupCallback(String* name, LookupResult* result);
1509 1509
1510 inline Smi* InterceptorPropertyLookupHint(String* name); 1510 inline Smi* InterceptorPropertyLookupHint(String* name);
1511 Object* GetInterceptorPropertyWithLookupHint(JSObject* receiver,
1512 Smi* lookup_hint,
1513 String* name,
1514 PropertyAttributes* attributes);
1515 static const int kLookupInHolder = -1; 1511 static const int kLookupInHolder = -1;
1516 static const int kLookupInPrototype = -2; 1512 static const int kLookupInPrototype = -2;
1517 1513
1518 // Returns the number of properties on this object filtering out properties 1514 // Returns the number of properties on this object filtering out properties
1519 // with the specified attributes (ignoring interceptors). 1515 // with the specified attributes (ignoring interceptors).
1520 int NumberOfLocalProperties(PropertyAttributes filter); 1516 int NumberOfLocalProperties(PropertyAttributes filter);
1521 // Returns the number of enumerable properties (ignoring interceptors). 1517 // Returns the number of enumerable properties (ignoring interceptors).
1522 int NumberOfEnumProperties(); 1518 int NumberOfEnumProperties();
1523 // Fill in details for properties into storage starting at the specified 1519 // Fill in details for properties into storage starting at the specified
1524 // index. 1520 // index.
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
1699 String* name, 1695 String* name,
1700 bool continue_search); 1696 bool continue_search);
1701 1697
1702 // Returns true if most of the elements backing storage is used. 1698 // Returns true if most of the elements backing storage is used.
1703 bool HasDenseElements(); 1699 bool HasDenseElements();
1704 1700
1705 Object* DefineGetterSetter(String* name, PropertyAttributes attributes); 1701 Object* DefineGetterSetter(String* name, PropertyAttributes attributes);
1706 1702
1707 void LookupInDescriptor(String* name, LookupResult* result); 1703 void LookupInDescriptor(String* name, LookupResult* result);
1708 1704
1709 // Attempts to get property with a named interceptor getter.
1710 // Sets |attributes| to ABSENT if interceptor didn't return anything
1711 Object* GetPropertyWithInterceptorProper(JSObject* receiver,
1712 String* name,
1713 PropertyAttributes* attributes);
1714
1715 DISALLOW_IMPLICIT_CONSTRUCTORS(JSObject); 1705 DISALLOW_IMPLICIT_CONSTRUCTORS(JSObject);
1716 }; 1706 };
1717 1707
1718 1708
1719 // Abstract super class arrays. It provides length behavior. 1709 // Abstract super class arrays. It provides length behavior.
1720 class Array: public HeapObject { 1710 class Array: public HeapObject {
1721 public: 1711 public:
1722 // [length]: length of the array. 1712 // [length]: length of the array.
1723 inline int length(); 1713 inline int length();
1724 inline void set_length(int value); 1714 inline void set_length(int value);
(...skipping 3070 matching lines...) Expand 10 before | Expand all | Expand 10 after
4795 } else { 4785 } else {
4796 value &= ~(1 << bit_position); 4786 value &= ~(1 << bit_position);
4797 } 4787 }
4798 return value; 4788 return value;
4799 } 4789 }
4800 }; 4790 };
4801 4791
4802 } } // namespace v8::internal 4792 } } // namespace v8::internal
4803 4793
4804 #endif // V8_OBJECTS_H_ 4794 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/ia32/stub-cache-ia32.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698