rquickjs_sys/inlines/
ptr_64.rs1#[inline]
2pub unsafe fn JS_VALUE_GET_TAG(v: JSValue) -> i32 {
3 v.tag as _
4}
5
6#[inline]
7pub unsafe fn JS_VALUE_GET_NORM_TAG(v: JSValue) -> i32 {
8 JS_VALUE_GET_TAG(v)
9}
10
11#[inline]
12pub unsafe fn JS_VALUE_GET_INT(v: JSValue) -> i32 {
13 v.u.int32
14}
15
16#[inline]
17pub unsafe fn JS_VALUE_GET_BOOL(v: JSValue) -> bool {
18 v.u.int32 != 0
19}
20
21#[inline]
22pub unsafe fn JS_VALUE_GET_FLOAT64(v: JSValue) -> f64 {
23 v.u.float64
24}
25
26#[inline]
27pub unsafe fn JS_VALUE_GET_PTR(v: JSValue) -> *mut c_void {
28 v.u.ptr
29}
30
31#[inline]
32pub const fn JS_MKVAL(tag: i32, val: i32) -> JSValue {
33 JSValue {
34 u: JSValueUnion { int32: val },
35 tag: tag as _,
36 }
37}
38
39#[inline]
40pub fn JS_MKPTR(tag: i32, ptr: *mut c_void) -> JSValue {
41 JSValue {
42 u: JSValueUnion { ptr },
43 tag: tag as _,
44 }
45}
46
47#[inline]
48pub unsafe fn JS_TAG_IS_FLOAT64(tag: i32) -> bool {
49 tag == JS_TAG_FLOAT64
50}
51
52pub const JS_NAN: JSValue = JSValue {
53 tag: JS_TAG_FLOAT64 as _,
54 u: JSValueUnion { float64: f64::NAN },
55};
56
57#[inline]
58pub fn __JS_NewFloat64(d: f64) -> JSValue {
59 JSValue {
60 tag: JS_TAG_FLOAT64 as _,
61 u: JSValueUnion { float64: d },
62 }
63}
64
65#[inline]
66pub unsafe fn JS_VALUE_IS_NAN(v: JSValue) -> bool {
67 union U {
68 d: f64,
69 u: u64,
70 }
71 if v.tag != JS_TAG_FLOAT64 as _ {
72 return false;
73 }
74 let u = U { d: v.u.float64 };
75 (u.u & 0x7fffffffffffffff) > 0x7ff0000000000000
76}