@@ -42,13 +42,14 @@ public class JSThrowingFunction {
42
42
let argv = bufferPointer. baseAddress
43
43
let argc = bufferPointer. count
44
44
45
- var exceptionKind = JavaScriptValueKindAndFlags ( )
45
+ var exceptionRawKind = JavaScriptRawValueKindAndFlags ( )
46
46
var exceptionPayload1 = JavaScriptPayload1 ( )
47
47
var exceptionPayload2 = JavaScriptPayload2 ( )
48
48
let resultObj = swjs_call_throwing_new (
49
49
self . base. id, argv, Int32 ( argc) ,
50
- & exceptionKind , & exceptionPayload1, & exceptionPayload2
50
+ & exceptionRawKind , & exceptionPayload1, & exceptionPayload2
51
51
)
52
+ let exceptionKind = JavaScriptValueKindAndFlags ( bitPattern: exceptionRawKind)
52
53
if exceptionKind. isException {
53
54
let exception = RawJSValue ( kind: exceptionKind. kind, payload1: exceptionPayload1, payload2: exceptionPayload2)
54
55
return . failure( exception. jsValue)
@@ -70,21 +71,21 @@ private func invokeJSFunction(_ jsFunc: JSFunction, arguments: [ConvertibleToJSV
70
71
rawValues. withUnsafeBufferPointer { bufferPointer -> ( JSValue , Bool ) in
71
72
let argv = bufferPointer. baseAddress
72
73
let argc = bufferPointer. count
73
- var kindAndFlags = JavaScriptValueKindAndFlags ( )
74
+ let kindAndFlags : JavaScriptValueKindAndFlags
74
75
var payload1 = JavaScriptPayload1 ( )
75
76
var payload2 = JavaScriptPayload2 ( )
76
77
if let thisId = this? . id {
77
78
let resultBitPattern = swjs_call_function_with_this (
78
79
thisId, id, argv, Int32 ( argc) ,
79
80
& payload1, & payload2
80
81
)
81
- kindAndFlags = unsafeBitCast ( resultBitPattern , to : JavaScriptValueKindAndFlags . self )
82
+ kindAndFlags = JavaScriptValueKindAndFlags ( bitPattern : resultBitPattern )
82
83
} else {
83
84
let resultBitPattern = swjs_call_function (
84
85
id, argv, Int32 ( argc) ,
85
86
& payload1, & payload2
86
87
)
87
- kindAndFlags = unsafeBitCast ( resultBitPattern , to : JavaScriptValueKindAndFlags . self )
88
+ kindAndFlags = JavaScriptValueKindAndFlags ( bitPattern : resultBitPattern )
88
89
}
89
90
let result = RawJSValue ( kind: kindAndFlags. kind, payload1: payload1, payload2: payload2)
90
91
return ( result. jsValue, kindAndFlags. isException)
@@ -95,4 +96,4 @@ private func invokeJSFunction(_ jsFunc: JSFunction, arguments: [ConvertibleToJSV
95
96
}
96
97
return result
97
98
}
98
- #endif
99
+ #endif
0 commit comments