js-runtime: Change return type of constructor methods to js.Object
This commit is contained in:
parent
7b27544cce
commit
54780c9af8
2 changed files with 6 additions and 9 deletions
|
|
@ -331,15 +331,14 @@ const zig = {
|
||||||
return values[id].length;
|
return values[id].length;
|
||||||
},
|
},
|
||||||
|
|
||||||
zigConstructType(id, args, args_len, ret_ptr) {
|
zigConstructType(id, args, args_len) {
|
||||||
let memory = new MemoryBlock(zig.wasm.exports.memory.buffer);
|
let memory = new MemoryBlock(zig.wasm.exports.memory.buffer);
|
||||||
let argv = [];
|
let argv = [];
|
||||||
for (let i = 0; i < args_len; i += 1) {
|
for (let i = 0; i < args_len; i += 1) {
|
||||||
argv.push(zig.readObject(memory.slice(args + i * 16), memory));
|
argv.push(zig.readObject(memory.slice(args + i * 16), memory));
|
||||||
}
|
}
|
||||||
|
|
||||||
const result = zig.addValue(new values[id](argv));
|
return zig.addValue(new values[id](argv));
|
||||||
zig.writeObject(memory.slice(ret_ptr), result, 0);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
wzLogWrite(str, len) {
|
wzLogWrite(str, len) {
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ const js = struct {
|
||||||
extern fn zigFunctionCall(id: u64, name: [*]const u8, len: u32, args: ?*const anyopaque, args_len: u32, ret_ptr: *anyopaque) void;
|
extern fn zigFunctionCall(id: u64, name: [*]const u8, len: u32, args: ?*const anyopaque, args_len: u32, ret_ptr: *anyopaque) void;
|
||||||
extern fn zigFunctionInvoke(id: u64, args: ?*const anyopaque, args_len: u32, ret_ptr: *anyopaque) void;
|
extern fn zigFunctionInvoke(id: u64, args: ?*const anyopaque, args_len: u32, ret_ptr: *anyopaque) void;
|
||||||
extern fn zigGetParamCount(id: u64) u32;
|
extern fn zigGetParamCount(id: u64) u32;
|
||||||
extern fn zigConstructType(id: u64, args: ?*const anyopaque, args_len: u32, ret_ptr: *anyopaque) void;
|
extern fn zigConstructType(id: u64, args: ?*const anyopaque, args_len: u32) u32;
|
||||||
extern fn zigCleanupObject(id: u64) void;
|
extern fn zigCleanupObject(id: u64) void;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -163,10 +163,8 @@ pub const Function = struct {
|
||||||
return js.zigGetParamCount(func.ref);
|
return js.zigGetParamCount(func.ref);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn construct(func: *const Function, args: []const Value) Value {
|
pub fn construct(func: *const Function, args: []const Value) Object {
|
||||||
var ret: Value = undefined;
|
return .{ .ref = js.zigConstructType(func.ref, args.ptr, args.len) };
|
||||||
js.zigConstructType(func.ref, args.ptr, args.len, &ret);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn invoke(func: *const Function, args: []const Value) Value {
|
pub fn invoke(func: *const Function, args: []const Value) Value {
|
||||||
|
|
@ -253,7 +251,7 @@ pub fn createFunction(fun: FunType) Function {
|
||||||
return .{ .ref = js.zigCreateFunction(&fun) };
|
return .{ .ref = js.zigCreateFunction(&fun) };
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn constructType(t: []const u8, args: []const Value) Value {
|
pub fn constructType(t: []const u8, args: []const Value) Object {
|
||||||
const constructor = global().get(t).view(.func);
|
const constructor = global().get(t).view(.func);
|
||||||
defer constructor.deinit();
|
defer constructor.deinit();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue