aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/bindings/bindings.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-02-06 00:25:35 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-02-06 00:25:35 -0800
commite459ee472f7049372d134d8c9a6724b8dd3d9499 (patch)
tree1b0450498fd06fe4f9daca2a11e03e58b537395d /src/javascript/jsc/bindings/bindings.zig
parenta6ee900aafb27081b84f242c05353aa265be4850 (diff)
downloadbun-e459ee472f7049372d134d8c9a6724b8dd3d9499.tar.gz
bun-e459ee472f7049372d134d8c9a6724b8dd3d9499.tar.zst
bun-e459ee472f7049372d134d8c9a6724b8dd3d9499.zip
Diffstat (limited to 'src/javascript/jsc/bindings/bindings.zig')
-rw-r--r--src/javascript/jsc/bindings/bindings.zig28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/javascript/jsc/bindings/bindings.zig b/src/javascript/jsc/bindings/bindings.zig
index 0eaf2a277..e410de62a 100644
--- a/src/javascript/jsc/bindings/bindings.zig
+++ b/src/javascript/jsc/bindings/bindings.zig
@@ -89,6 +89,16 @@ pub const ZigString = extern struct {
pub const shim = Shimmer("", "ZigString", @This());
+ pub fn hash(this: ZigString) u64 {
+ if (this.len == 0) return 0;
+
+ if (this.is16Bit()) {
+ return std.hash.Wyhash.hash(0, std.mem.sliceAsBytes(this.utf16Slice()));
+ }
+
+ return std.hash.Wyhash.hash(0, this.slice());
+ }
+
pub const Slice = struct {
allocator: std.mem.Allocator,
ptr: [*]const u8,
@@ -1713,6 +1723,22 @@ pub const JSValue = enum(i64) {
});
}
+ pub fn indexOfMatchingRegexPtr(list: [*]const JSValue, list_len: usize, globalThis: *JSGlobalObject, zig_str: *const ZigString) i32 {
+ return cppFn("indexOfMatchingRegexPtr", .{
+ list,
+ list_len,
+ globalThis,
+ zig_str,
+ });
+ }
+
+ pub fn indexOfMatchingRegExp(list: []const JSValue, globalThis: *JSGlobalObject, zig_str: ZigString) ?usize {
+ return switch (indexOfMatchingRegexPtr(list.ptr, list.len, globalThis, &zig_str)) {
+ -1 => null,
+ 0...std.math.maxInt(i32) => |val| @intCast(usize, val),
+ };
+ }
+
pub inline fn arrayIterator(this: JSValue, global: *JSGlobalObject) JSArrayIterator {
return JSArrayIterator.init(this, global);
}
@@ -1998,7 +2024,7 @@ pub const JSValue = enum(i64) {
return @intToPtr(*anyopaque, @bitCast(u64, @enumToInt(this)));
}
- pub const Extern = [_][]const u8{ "createInternalPromise", "asInternalPromise", "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" };
+ pub const Extern = [_][]const u8{ "indexOfMatchingRegex", "createInternalPromise", "asInternalPromise", "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;