| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index a87ad63173c415587c72be73f9b538d6723aaa9a..b7faa9379f5e8506bc56a9772357078364493f7b 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -150,6 +150,9 @@
|
| namespace v8 {
|
| namespace internal {
|
|
|
| +// Forward declarations
|
| +class LookupCacheEntry;
|
| +
|
| enum CompareMapMode {
|
| REQUIRE_EXACT_MAP,
|
| ALLOW_ELEMENT_TRANSITION_MAPS
|
| @@ -9527,6 +9530,32 @@ class BooleanBit : public AllStatic {
|
| }
|
| };
|
|
|
| +
|
| +class LookupCache {
|
| + public:
|
| + explicit LookupCache(Isolate* isolate);
|
| + ~LookupCache();
|
| +
|
| + void Lookup(Handle<Object> obj,
|
| + Handle<Name> name,
|
| + LookupResult* result,
|
| + bool set_property = false);
|
| + MUST_USE_RESULT MaybeObject* GetProperty(Handle<Object> obj,
|
| + Handle<Name> name);
|
| + MUST_USE_RESULT MaybeObject* SetProperty(Handle<Object> obj,
|
| + Handle<Name> name,
|
| + Handle<Object> value);
|
| +
|
| + private:
|
| + static const int kCacheEntryCount = 7;
|
| +
|
| + Isolate* isolate_;
|
| + int count_;
|
| + LookupCacheEntry* entries_[kCacheEntryCount];
|
| + int hidden_count_;
|
| + LookupCacheEntry* hidden_entries_[kCacheEntryCount];
|
| +};
|
| +
|
| } } // namespace v8::internal
|
|
|
| #endif // V8_OBJECTS_H_
|
|
|