Index: src/contexts.h |
=================================================================== |
--- src/contexts.h (revision 9531) |
+++ src/contexts.h (working copy) |
@@ -134,6 +134,8 @@ |
V(MAP_CACHE_INDEX, Object, map_cache) \ |
V(CONTEXT_DATA_INDEX, Object, data) \ |
V(ALLOW_CODE_GEN_FROM_STRINGS_INDEX, Object, allow_code_gen_from_strings) \ |
+ V(TO_COMPLETE_PROPERTY_DESCRIPTOR_INDEX, JSFunction, \ |
+ to_complete_property_descriptor) \ |
V(DERIVED_HAS_TRAP_INDEX, JSFunction, derived_has_trap) \ |
V(DERIVED_GET_TRAP_INDEX, JSFunction, derived_get_trap) \ |
V(DERIVED_SET_TRAP_INDEX, JSFunction, derived_set_trap) |
@@ -252,6 +254,7 @@ |
OUT_OF_MEMORY_INDEX, |
CONTEXT_DATA_INDEX, |
ALLOW_CODE_GEN_FROM_STRINGS_INDEX, |
+ TO_COMPLETE_PROPERTY_DESCRIPTOR_INDEX, |
DERIVED_HAS_TRAP_INDEX, |
DERIVED_GET_TRAP_INDEX, |
DERIVED_SET_TRAP_INDEX, |
@@ -330,12 +333,6 @@ |
// Mark the global context with out of memory. |
inline void mark_out_of_memory(); |
- // The exception holder is the object used as a with object in |
- // the implementation of a catch block. |
- bool is_exception_holder(Object* object) { |
- return IsCatchContext() && extension() == object; |
- } |
- |
// A global context hold a list of all functions which have been optimized. |
void AddOptimizedFunction(JSFunction* function); |
void RemoveOptimizedFunction(JSFunction* function); |
@@ -355,29 +352,25 @@ |
#undef GLOBAL_CONTEXT_FIELD_ACCESSORS |
// Lookup the the slot called name, starting with the current context. |
- // There are 4 possible outcomes: |
+ // There are three possibilities: |
// |
- // 1) index_ >= 0 && result->IsContext(): |
- // most common case, the result is a Context, and index is the |
- // context slot index, and the slot exists. |
- // attributes == READ_ONLY for the function name variable, NONE otherwise. |
+ // 1) result->IsContext(): |
+ // The binding was found in a context. *index is always the |
+ // non-negative slot index. *attributes is NONE for var and let |
+ // declarations, READ_ONLY for const declarations (never ABSENT). |
// |
- // 2) index_ >= 0 && result->IsJSObject(): |
- // the result is the JSObject arguments object, the index is the parameter |
- // index, i.e., key into the arguments object, and the property exists. |
- // attributes != ABSENT. |
+ // 2) result->IsJSObject(): |
+ // The binding was found as a named property in a context extension |
+ // object (i.e., was introduced via eval), as a property on the subject |
+ // of with, or as a property of the global object. *index is -1 and |
+ // *attributes is not ABSENT. |
// |
- // 3) index_ < 0 && result->IsJSObject(): |
- // the result is the JSObject extension context or the global object, |
- // and the name is the property name, and the property exists. |
- // attributes != ABSENT. |
- // |
- // 4) index_ < 0 && result.is_null(): |
- // there was no context found with the corresponding property. |
- // attributes == ABSENT. |
+ // 3) result.is_null(): |
+ // There was no binding found, *index is always -1 and *attributes is |
+ // always ABSENT. |
Handle<Object> Lookup(Handle<String> name, |
ContextLookupFlags flags, |
- int* index_, |
+ int* index, |
PropertyAttributes* attributes, |
BindingFlags* binding_flags); |