@@ -30,43 +30,27 @@ const JSVAL_TAG_MAX_DOUBLE: u32 = 0x1FFF0;
3030#[ cfg( target_pointer_width = "32" ) ]
3131const JSVAL_TAG_CLEAR : u32 = 0xFFFFFF80 ;
3232
33- const CELL_ALIGN_MASK : u64 = ( 1 << 3 ) - 1 ;
33+ #[ cfg( target_pointer_width = "64" ) ]
34+ const JSVAL_TAG_BOX : u32 = JSVAL_TAG_MAX_DOUBLE ;
3435
35- macro_rules! value_tag {
36- ( enum $name: ident { $( $variant: ident = $value_type: path, ) * } ) => {
37- #[ cfg( target_pointer_width = "64" ) ]
38- #[ repr( u32 ) ]
39- #[ allow( dead_code) ]
40- enum $name {
41- $(
42- $variant = JSVAL_TAG_MAX_DOUBLE | ( $value_type as u32 ) ,
43- ) *
44- }
36+ #[ cfg( target_pointer_width = "32" ) ]
37+ const JSVAL_TAG_BOX : u32 = JSVAL_TAG_CLEAR ;
4538
46- #[ cfg( target_pointer_width = "32" ) ]
47- #[ repr( u32 ) ]
48- #[ allow( dead_code) ]
49- enum $name {
50- $(
51- $variant = JSVAL_TAG_CLEAR | ( $value_type as u32 ) ,
52- ) *
53- }
54- } ;
55- }
39+ const CELL_ALIGN_MASK : u64 = ( 1 << 3 ) - 1 ;
5640
57- value_tag ! {
58- enum ValueTag {
59- INT32 = JSValueType :: JSVAL_TYPE_INT32 ,
60- UNDEFINED = JSValueType :: JSVAL_TYPE_UNDEFINED ,
61- NULL = JSValueType :: JSVAL_TYPE_NULL ,
62- BOOLEAN = JSValueType :: JSVAL_TYPE_BOOLEAN ,
63- MAGIC = JSValueType :: JSVAL_TYPE_MAGIC ,
64- STRING = JSValueType :: JSVAL_TYPE_STRING ,
65- SYMBOL = JSValueType :: JSVAL_TYPE_SYMBOL ,
66- PRIVATE_GCTHING = JSValueType :: JSVAL_TYPE_PRIVATE_GCTHING ,
67- BIGINT = JSValueType :: JSVAL_TYPE_BIGINT ,
68- OBJECT = JSValueType :: JSVAL_TYPE_OBJECT ,
69- }
41+ # [ repr ( u32 ) ]
42+ # [ allow ( dead_code ) ]
43+ enum ValueTag {
44+ INT32 = JSVAL_TAG_BOX | ( JSValueType :: JSVAL_TYPE_INT32 as u32 ) ,
45+ UNDEFINED = JSVAL_TAG_BOX | ( JSValueType :: JSVAL_TYPE_UNDEFINED as u32 ) ,
46+ NULL = JSVAL_TAG_BOX | ( JSValueType :: JSVAL_TYPE_NULL as u32 ) ,
47+ BOOLEAN = JSVAL_TAG_BOX | ( JSValueType :: JSVAL_TYPE_BOOLEAN as u32 ) ,
48+ MAGIC = JSVAL_TAG_BOX | ( JSValueType :: JSVAL_TYPE_MAGIC as u32 ) ,
49+ STRING = JSVAL_TAG_BOX | ( JSValueType :: JSVAL_TYPE_STRING as u32 ) ,
50+ SYMBOL = JSVAL_TAG_BOX | ( JSValueType :: JSVAL_TYPE_SYMBOL as u32 ) ,
51+ PRIVATE_GCTHING = JSVAL_TAG_BOX | ( JSValueType :: JSVAL_TYPE_PRIVATE_GCTHING as u32 ) ,
52+ BIGINT = JSVAL_TAG_BOX | ( JSValueType :: JSVAL_TYPE_BIGINT as u32 ) ,
53+ OBJECT = JSVAL_TAG_BOX | ( JSValueType :: JSVAL_TYPE_OBJECT as u32 ) ,
7054}
7155
7256#[ repr( u64 ) ]
0 commit comments