Skip to content

Commit 6c19dd2

Browse files
WIP
1 parent d342639 commit 6c19dd2

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

Diff for: IntegrationTests/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ global.globalObject1 = {
3939
},
4040
"prop_6": {
4141
"call_host_1": () => {
42+
console.log(global.globalObject1.prop_6)
4243
return global.globalObject1.prop_6.host_func_1()
4344
}
4445
},

Diff for: Runtime/src/index.ts

+17-6
Original file line numberDiff line numberDiff line change
@@ -159,23 +159,23 @@ export class SwiftRuntime {
159159

160160
const decodeValue = (
161161
kind: JavaScriptValueKind,
162-
payload1_ptr: pointer, payload2_ptr: pointer, payload3_ptr: pointer
162+
payload1: number, payload2: number, payload3: number
163163
) => {
164164
switch (kind) {
165165
case JavaScriptValueKind.Boolean: {
166-
switch (readUInt32(payload1_ptr)) {
166+
switch (payload1) {
167167
case 0: return false
168168
case 1: return true
169169
}
170170
}
171171
case JavaScriptValueKind.Number: {
172-
return readFloat64(payload3_ptr);
172+
return payload3;
173173
}
174174
case JavaScriptValueKind.String: {
175-
return readString(readUInt32(payload1_ptr), readUInt32(payload2_ptr))
175+
return readString(payload1, payload2)
176176
}
177177
case JavaScriptValueKind.Object: {
178-
return this.heap.referenceHeap(readUInt32(payload1_ptr))
178+
return this.heap.referenceHeap(payload1)
179179
}
180180
case JavaScriptValueKind.Null: {
181181
return null
@@ -184,7 +184,11 @@ export class SwiftRuntime {
184184
return undefined
185185
}
186186
case JavaScriptValueKind.Function: {
187-
return this.heap.referenceHeap(readUInt32(payload1_ptr))
187+
// console.log("decoding function:")
188+
// console.log(" payload1: " + payload1)
189+
// console.log("Heap Contents:")
190+
// console.log(this.heap)
191+
return this.heap.referenceHeap(payload1)
188192
}
189193
default:
190194
throw new Error(`Type kind "${kind}" is not supported`)
@@ -268,6 +272,13 @@ export class SwiftRuntime {
268272
payload1: number, payload2: number, payload3: number
269273
) => {
270274
const obj = this.heap.referenceHeap(ref);
275+
// console.log("swjs_set_prop");
276+
// console.log(" name: " + readString(name, length));
277+
// console.log(" kind: " + kind)
278+
// console.log(" payload1: " + payload1)
279+
// console.log(" payload2: " + payload2)
280+
// console.log(" payload3: " + payload3)
281+
// console.log(" value: " + decodeValue(kind, payload1, payload2, payload3))
271282
Reflect.set(obj, readString(name, length), decodeValue(kind, payload1, payload2, payload3))
272283
},
273284
swjs_get_prop: (

0 commit comments

Comments
 (0)