@@ -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