aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/bindings/bindings.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/javascript/jsc/bindings/bindings.zig')
-rw-r--r--src/javascript/jsc/bindings/bindings.zig30
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;