blob: add3e6dc4513a9791823a55b0280eea125f3892e [file] [log] [blame]
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: