@@ -30,43 +30,27 @@ const JSVAL_TAG_MAX_DOUBLE: u32 = 0x1FFF0;
30
30
#[ cfg( target_pointer_width = "32" ) ]
31
31
const JSVAL_TAG_CLEAR : u32 = 0xFFFFFF80 ;
32
32
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 ;
34
35
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 ;
45
38
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 ;
56
40
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 ) ,
70
54
}
71
55
72
56
#[ repr( u64 ) ]
0 commit comments