| Index: src/property.h
|
| ===================================================================
|
| --- src/property.h (revision 7948)
|
| +++ src/property.h (working copy)
|
| @@ -28,6 +28,8 @@
|
| #ifndef V8_PROPERTY_H_
|
| #define V8_PROPERTY_H_
|
|
|
| +#include "allocation.h"
|
| +
|
| namespace v8 {
|
| namespace internal {
|
|
|
| @@ -164,15 +166,6 @@
|
|
|
| class LookupResult BASE_EMBEDDED {
|
| public:
|
| - // Where did we find the result;
|
| - enum {
|
| - NOT_FOUND,
|
| - DESCRIPTOR_TYPE,
|
| - DICTIONARY_TYPE,
|
| - INTERCEPTOR_TYPE,
|
| - CONSTANT_TYPE
|
| - } lookup_type_;
|
| -
|
| LookupResult()
|
| : lookup_type_(NOT_FOUND),
|
| cacheable_(true),
|
| @@ -209,6 +202,12 @@
|
| number_ = entry;
|
| }
|
|
|
| + void HandlerResult() {
|
| + lookup_type_ = HANDLER_TYPE;
|
| + holder_ = NULL;
|
| + details_ = PropertyDetails(NONE, HANDLER);
|
| + }
|
| +
|
| void InterceptorResult(JSObject* holder) {
|
| lookup_type_ = INTERCEPTOR_TYPE;
|
| holder_ = holder;
|
| @@ -243,6 +242,7 @@
|
| bool IsDontEnum() { return details_.IsDontEnum(); }
|
| bool IsDeleted() { return details_.IsDeleted(); }
|
| bool IsFound() { return lookup_type_ != NOT_FOUND; }
|
| + bool IsHandler() { return lookup_type_ == HANDLER_TYPE; }
|
|
|
| // Is the result is a property excluding transitions and the null
|
| // descriptor?
|
| @@ -343,6 +343,16 @@
|
| }
|
|
|
| private:
|
| + // Where did we find the result;
|
| + enum {
|
| + NOT_FOUND,
|
| + DESCRIPTOR_TYPE,
|
| + DICTIONARY_TYPE,
|
| + HANDLER_TYPE,
|
| + INTERCEPTOR_TYPE,
|
| + CONSTANT_TYPE
|
| + } lookup_type_;
|
| +
|
| JSObject* holder_;
|
| int number_;
|
| bool cacheable_;
|
|
|