Blob Blame History Raw
diff -up js-1.8.5/js/src/jsval.h.pad-the-structs-and-asserts js-1.8.5/js/src/jsval.h
--- js-1.8.5/js/src/jsval.h.pad-the-structs-and-asserts	2011-11-28 12:46:32.811556132 -0600
+++ js-1.8.5/js/src/jsval.h	2011-11-28 12:46:43.493448233 -0600
@@ -343,11 +343,11 @@ typedef union jsval_layout
         uint64             payload47 : 47;
     } debugView;
     struct {
+        uint32             padding;
         union {
             int32          i32;
             uint32         u32;
             JSWhyMagic     why;
-            jsuword        word;
         } payload;
     } s;
     double asDouble;
diff -up js-1.8.5/js/src/jsvalue.h.pad-the-structs-and-asserts js-1.8.5/js/src/jsvalue.h
--- js-1.8.5/js/src/jsvalue.h.pad-the-structs-and-asserts	2011-11-28 12:46:37.246509255 -0600
+++ js-1.8.5/js/src/jsvalue.h	2011-11-28 12:46:43.495448203 -0600
@@ -291,7 +291,6 @@ JSVAL_EXTRACT_NON_DOUBLE_TAG_IMPL(jsval_
 }
 
 #ifdef __cplusplus
-JS_STATIC_ASSERT(offsetof(jsval_layout, s.payload) == 0);
 JS_STATIC_ASSERT((JSVAL_TYPE_NONFUNOBJ & 0xF) == JSVAL_TYPE_OBJECT);
 JS_STATIC_ASSERT((JSVAL_TYPE_FUNOBJ & 0xF) == JSVAL_TYPE_OBJECT);
 #endif
@@ -729,7 +728,11 @@ class Value
     }
 
     const jsuword *payloadWord() const {
+#if JS_BITS_PER_WORD == 32
         return &data.s.payload.word;
+#elif JS_BITS_PER_WORD == 64
+	return &data.asBits;
+#endif
     }
 
   private: