Revision: 10372
Author:   [email protected]
Date:     Tue Jan 10 08:12:16 2012
Log:      Fixed AccessorPair handling
http://code.google.com/p/v8/source/detail?r=10372

Modified:
 /branches/bleeding_edge/include/v8.h
 /branches/bleeding_edge/src/objects.cc
 /branches/bleeding_edge/tools/grokdump.py

=======================================
--- /branches/bleeding_edge/include/v8.h        Wed Jan  4 00:48:35 2012
+++ /branches/bleeding_edge/include/v8.h        Tue Jan 10 08:12:16 2012
@@ -3816,7 +3816,7 @@
   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;

=======================================
--- /branches/bleeding_edge/src/objects.cc      Tue Jan 10 08:11:33 2012
+++ /branches/bleeding_edge/src/objects.cc      Tue Jan 10 08:12:16 2012
@@ -4606,14 +4606,15 @@
                                                  fun, attributes);
   }

-  AccessorPair* accessors;
+  Object* accessors;
   { MaybeObject* maybe_accessors = DefineGetterSetter(name, attributes);
- if (!maybe_accessors->To<AccessorPair>(&accessors)) return maybe_accessors;
-  }
+    if (!maybe_accessors->To<Object>(&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;
 }
=======================================
--- /branches/bleeding_edge/tools/grokdump.py   Thu Jan  5 06:28:45 2012
+++ /branches/bleeding_edge/tools/grokdump.py   Tue Jan 10 08:12:16 2012
@@ -506,10 +506,10 @@

# 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 @@
   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",
 }


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to