diff options
Diffstat (limited to 'src/javascript/jsc/bindings/bindings.zig')
-rw-r--r-- | src/javascript/jsc/bindings/bindings.zig | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/src/javascript/jsc/bindings/bindings.zig b/src/javascript/jsc/bindings/bindings.zig index 4dad9a926..77f2bc20c 100644 --- a/src/javascript/jsc/bindings/bindings.zig +++ b/src/javascript/jsc/bindings/bindings.zig @@ -13,7 +13,7 @@ const ErrorableResolvedSource = Exports.ErrorableResolvedSource; const ZigException = Exports.ZigException; const ZigStackTrace = Exports.ZigStackTrace; const is_bindgen: bool = std.meta.globalOption("bindgen", bool) orelse false; - +const ArrayBuffer = @import("../base.zig").ArrayBuffer; pub const JSObject = extern struct { pub const shim = Shimmer("JSC", "JSObject", @This()); bytes: shim.Bytes, @@ -1429,6 +1429,22 @@ pub const JSValue = enum(i64) { MaxJS = 0b11111111, _, + pub fn toC(this: JSType) C_API.JSTypedArrayType { + return switch (this) { + .Int8Array => .kJSTypedArrayTypeInt8Array, + .Int16Array => .kJSTypedArrayTypeInt16Array, + .Int32Array => .kJSTypedArrayTypeInt32Array, + .Uint8Array => .kJSTypedArrayTypeUint8Array, + .Uint8ClampedArray => .kJSTypedArrayTypeUint8ClampedArray, + .Uint16Array => .kJSTypedArrayTypeUint16Array, + .Uint32Array => .kJSTypedArrayTypeUint32Array, + .Float32Array => .kJSTypedArrayTypeFloat32Array, + .Float64Array => .kJSTypedArrayTypeFloat64Array, + .ArrayBuffer => .kJSTypedArrayTypeArrayBuffer, + else => .kJSTypedArrayTypeNone, + }; + } + pub fn isHidden(this: JSType) bool { return switch (this) { .APIValueWrapper, @@ -1708,6 +1724,16 @@ pub const JSValue = enum(i64) { return cppFn("toZigString", .{ this, out, global }); } + pub fn asArrayBuffer_(this: JSValue, global: *JSGlobalObject, out: *ArrayBuffer) bool { + return cppFn("asArrayBuffer_", .{ this, global, out }); + } + + pub fn asArrayBuffer(this: JSValue, global: *JSGlobalObject) ?ArrayBuffer { + var out: ArrayBuffer = undefined; + if (this.asArrayBuffer_(global, &out)) return out; + return null; + } + pub inline fn getZigString(this: JSValue, global: *JSGlobalObject) ZigString { var str = ZigString.init(""); this.toZigString(&str, global); @@ -1857,7 +1883,7 @@ pub const JSValue = enum(i64) { return @intToPtr(*anyopaque, @bitCast(u64, @enumToInt(this))); } - pub const Extern = [_][]const u8{ "getReadableStreamState", "getWritableStreamState", "fromEntries", "createTypeError", "createRangeError", "createObject2", "getIfPropertyExistsImpl", "jsType", "jsonStringify", "kind_", "isTerminationException", "isSameValue", "getLengthOfArray", "toZigString", "createStringArray", "createEmptyObject", "putRecord", "asPromise", "isClass", "getNameProperty", "getClassName", "getErrorsProperty", "toInt32", "toBoolean", "isInt32", "isIterable", "forEach", "isAggregateError", "toZigException", "isException", "toWTFString", "hasProperty", "getPropertyNames", "getDirect", "putDirect", "get", "getIfExists", "asString", "asObject", "asNumber", "isError", "jsNull", "jsUndefined", "jsTDZValue", "jsBoolean", "jsDoubleNumber", "jsNumberFromDouble", "jsNumberFromChar", "jsNumberFromU16", "jsNumberFromInt32", "jsNumberFromInt64", "jsNumberFromUint64", "isUndefined", "isNull", "isUndefinedOrNull", "isBoolean", "isAnyInt", "isUInt32AsAnyInt", "isInt32AsAnyInt", "isNumber", "isString", "isBigInt", "isHeapBigInt", "isBigInt32", "isSymbol", "isPrimitive", "isGetterSetter", "isCustomGetterSetter", "isObject", "isCell", "asCell", "toString", "toStringOrNull", "toPropertyKey", "toPropertyKeyValue", "toObject", "toString", "getPrototype", "getPropertyByPropertyName", "eqlValue", "eqlCell", "isCallable" }; + pub const Extern = [_][]const u8{ "asArrayBuffer_", "getReadableStreamState", "getWritableStreamState", "fromEntries", "createTypeError", "createRangeError", "createObject2", "getIfPropertyExistsImpl", "jsType", "jsonStringify", "kind_", "isTerminationException", "isSameValue", "getLengthOfArray", "toZigString", "createStringArray", "createEmptyObject", "putRecord", "asPromise", "isClass", "getNameProperty", "getClassName", "getErrorsProperty", "toInt32", "toBoolean", "isInt32", "isIterable", "forEach", "isAggregateError", "toZigException", "isException", "toWTFString", "hasProperty", "getPropertyNames", "getDirect", "putDirect", "getIfExists", "asString", "asObject", "asNumber", "isError", "jsNull", "jsUndefined", "jsTDZValue", "jsBoolean", "jsDoubleNumber", "jsNumberFromDouble", "jsNumberFromChar", "jsNumberFromU16", "jsNumberFromInt32", "jsNumberFromInt64", "jsNumberFromUint64", "isUndefined", "isNull", "isUndefinedOrNull", "isBoolean", "isAnyInt", "isUInt32AsAnyInt", "isInt32AsAnyInt", "isNumber", "isString", "isBigInt", "isHeapBigInt", "isBigInt32", "isSymbol", "isPrimitive", "isGetterSetter", "isCustomGetterSetter", "isObject", "isCell", "asCell", "toString", "toStringOrNull", "toPropertyKey", "toPropertyKeyValue", "toObject", "toString", "getPrototype", "getPropertyByPropertyName", "eqlValue", "eqlCell", "isCallable" }; }; extern "c" fn Microtask__run(*Microtask, *JSGlobalObject) void; |