diff options
author | 2023-10-08 01:51:31 -0700 | |
---|---|---|
committer | 2023-10-13 18:08:03 -0700 | |
commit | 40579bb3af98546d04bcb1c947f78eee1eb19374 (patch) | |
tree | d565f1ef783e751050b317ebbce8eedfa9c9bfc5 | |
parent | 847fc70a4259614836192a2aea659e2e43d540e9 (diff) | |
download | bun-40579bb3af98546d04bcb1c947f78eee1eb19374.tar.gz bun-40579bb3af98546d04bcb1c947f78eee1eb19374.tar.zst bun-40579bb3af98546d04bcb1c947f78eee1eb19374.zip |
Add way to parse dates
-rw-r--r-- | src/bun.js/bindings/bindings.cpp | 9 | ||||
-rw-r--r-- | src/bun.js/bindings/bindings.zig | 6 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index 2efbde7b0..d06e8259e 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -3963,7 +3963,6 @@ void JSC__Exception__getStackTrace(JSC__Exception* arg0, ZigStackTrace* trace) JSC__JSValue JSC__VM__runGC(JSC__VM* vm, bool sync) { JSC::JSLockHolder lock(vm); - vm->finalizeSynchronousJSExecution(); WTF::releaseFastMallocFreeMemory(); @@ -4682,6 +4681,14 @@ CPP_DECL double JSC__JSValue__getUnixTimestamp(JSC__JSValue timeValue) return date->internalNumber(); } +extern "C" EncodedJSValue JSC__JSValue__dateInstanceFromNullTerminatedString(JSC::JSGlobalObject* globalObject, const char* nullTerminatedChars) +{ + double dateSeconds = WTF::parseDateFromNullTerminatedCharacters(nullTerminatedChars); + JSC::DateInstance* date = JSC::DateInstance::create(globalObject->vm(), globalObject->dateStructure(), dateSeconds); + + return JSValue::encode(date); +} + #pragma mark - WebCore::DOMFormData CPP_DECL void WebCore__DOMFormData__append(WebCore__DOMFormData* arg0, ZigString* arg1, ZigString* arg2) diff --git a/src/bun.js/bindings/bindings.zig b/src/bun.js/bindings/bindings.zig index d11017438..e6b218486 100644 --- a/src/bun.js/bindings/bindings.zig +++ b/src/bun.js/bindings/bindings.zig @@ -3588,6 +3588,12 @@ pub const JSValue = enum(JSValueReprInt) { return JSC.GetJSPrivateData(ZigType, value.asObjectRef()); } + extern fn JSC__JSValue__dateInstanceFromNullTerminatedString(*JSGlobalObject, [*:0]const u8) JSValue; + pub fn fromDateString(globalObject: *JSGlobalObject, str: [*:0]const u8) JSValue { + JSC.markBinding(@src()); + return JSC__JSValue__dateInstanceFromNullTerminatedString(globalObject, str); + } + extern fn JSBuffer__isBuffer(*JSGlobalObject, JSValue) bool; pub fn isBuffer(value: JSValue, global: *JSGlobalObject) bool { JSC.markBinding(@src()); |