diff --git a/include/v8.h b/include/v8.h index 1819943580..9fca8763d6 100644 --- a/include/v8.h +++ b/include/v8.h @@ -3816,7 +3816,7 @@ class Internals { static const int kFullStringRepresentationMask = 0x07; static const int kExternalTwoByteRepresentationTag = 0x02; - static const int kJSObjectType = 0xa6; + static const int kJSObjectType = 0xa7; static const int kFirstNonstringType = 0x80; static const int kForeignType = 0x85; diff --git a/src/objects.cc b/src/objects.cc index 61404b1a84..3041e5a5b9 100644 --- a/src/objects.cc +++ b/src/objects.cc @@ -4606,14 +4606,15 @@ MaybeObject* JSObject::DefineAccessor(String* name, fun, attributes); } - AccessorPair* accessors; + Object* accessors; { MaybeObject* maybe_accessors = DefineGetterSetter(name, attributes); - if (!maybe_accessors->To(&accessors)) return maybe_accessors; + if (!maybe_accessors->To(&accessors)) return maybe_accessors; } + if (accessors->IsUndefined()) return accessors; if (is_getter) { - accessors->set_getter(fun); + AccessorPair::cast(accessors)->set_getter(fun); } else { - accessors->set_setter(fun); + AccessorPair::cast(accessors)->set_setter(fun); } return this; } diff --git a/tools/grokdump.py b/tools/grokdump.py index 44f9518f63..9977289872 100755 --- a/tools/grokdump.py +++ b/tools/grokdump.py @@ -506,10 +506,10 @@ class MinidumpReader(object): # List of V8 instance types. Obtained by adding the code below to any .cc file. # -# #define DUMP_TYPE(T) printf("%d: \"%s\",\n", T, #T); +# #define DUMP_TYPE(T) printf(" %d: \"%s\",\n", T, #T); # struct P { # P() { -# printf("{\n"); +# printf("INSTANCE_TYPES = {\n"); # INSTANCE_TYPE_LIST(DUMP_TYPE) # printf("}\n"); # } @@ -556,34 +556,35 @@ INSTANCE_TYPES = { 144: "EXTERNAL_PIXEL_ARRAY_TYPE", 146: "FILLER_TYPE", 147: "ACCESSOR_INFO_TYPE", - 148: "ACCESS_CHECK_INFO_TYPE", - 149: "INTERCEPTOR_INFO_TYPE", - 150: "CALL_HANDLER_INFO_TYPE", - 151: "FUNCTION_TEMPLATE_INFO_TYPE", - 152: "OBJECT_TEMPLATE_INFO_TYPE", - 153: "SIGNATURE_INFO_TYPE", - 154: "TYPE_SWITCH_INFO_TYPE", - 155: "SCRIPT_TYPE", - 156: "CODE_CACHE_TYPE", - 157: "POLYMORPHIC_CODE_CACHE_TYPE", - 160: "FIXED_ARRAY_TYPE", + 148: "ACCESSOR_PAIR_TYPE", + 149: "ACCESS_CHECK_INFO_TYPE", + 150: "INTERCEPTOR_INFO_TYPE", + 151: "CALL_HANDLER_INFO_TYPE", + 152: "FUNCTION_TEMPLATE_INFO_TYPE", + 153: "OBJECT_TEMPLATE_INFO_TYPE", + 154: "SIGNATURE_INFO_TYPE", + 155: "TYPE_SWITCH_INFO_TYPE", + 156: "SCRIPT_TYPE", + 157: "CODE_CACHE_TYPE", + 158: "POLYMORPHIC_CODE_CACHE_TYPE", + 161: "FIXED_ARRAY_TYPE", 145: "FIXED_DOUBLE_ARRAY_TYPE", - 161: "SHARED_FUNCTION_INFO_TYPE", - 162: "JS_MESSAGE_OBJECT_TYPE", - 165: "JS_VALUE_TYPE", - 166: "JS_OBJECT_TYPE", - 167: "JS_CONTEXT_EXTENSION_OBJECT_TYPE", - 168: "JS_GLOBAL_OBJECT_TYPE", - 169: "JS_BUILTINS_OBJECT_TYPE", - 170: "JS_GLOBAL_PROXY_TYPE", - 171: "JS_ARRAY_TYPE", - 164: "JS_PROXY_TYPE", - 174: "JS_WEAK_MAP_TYPE", - 175: "JS_REGEXP_TYPE", - 176: "JS_FUNCTION_TYPE", - 163: "JS_FUNCTION_PROXY_TYPE", - 158: "DEBUG_INFO_TYPE", - 159: "BREAK_POINT_INFO_TYPE", + 162: "SHARED_FUNCTION_INFO_TYPE", + 163: "JS_MESSAGE_OBJECT_TYPE", + 166: "JS_VALUE_TYPE", + 167: "JS_OBJECT_TYPE", + 168: "JS_CONTEXT_EXTENSION_OBJECT_TYPE", + 169: "JS_GLOBAL_OBJECT_TYPE", + 170: "JS_BUILTINS_OBJECT_TYPE", + 171: "JS_GLOBAL_PROXY_TYPE", + 172: "JS_ARRAY_TYPE", + 165: "JS_PROXY_TYPE", + 175: "JS_WEAK_MAP_TYPE", + 176: "JS_REGEXP_TYPE", + 177: "JS_FUNCTION_TYPE", + 164: "JS_FUNCTION_PROXY_TYPE", + 159: "DEBUG_INFO_TYPE", + 160: "BREAK_POINT_INFO_TYPE", }