From cdabcfd9d09d2f4928ba7a918f654e001bb3c2eb Mon Sep 17 00:00:00 2001 From: Jarred SUmner Date: Sat, 2 Oct 2021 22:54:19 -0700 Subject: Linux works now. --- src/javascript/jsc/JavascriptCore.zig | 4 ++++ src/javascript/jsc/WebKit | 2 +- src/javascript/jsc/bindings/ZigGlobalObject.cpp | 17 +++++++++-------- 3 files changed, 14 insertions(+), 9 deletions(-) (limited to 'src/javascript/jsc') diff --git a/src/javascript/jsc/JavascriptCore.zig b/src/javascript/jsc/JavascriptCore.zig index f443799c1..dd271d2c0 100644 --- a/src/javascript/jsc/JavascriptCore.zig +++ b/src/javascript/jsc/JavascriptCore.zig @@ -544,3 +544,7 @@ pub const JSString = struct { } } }; + + +// not official api functions +pub extern "c" fn JSCInitialize() void; diff --git a/src/javascript/jsc/WebKit b/src/javascript/jsc/WebKit index 231267671..487a7b31d 160000 --- a/src/javascript/jsc/WebKit +++ b/src/javascript/jsc/WebKit @@ -1 +1 @@ -Subproject commit 231267671049bbd7cd60cd6e66fbc76b9e5ee5ef +Subproject commit 487a7b31de9fa54dab1611799db26907c14dc5a8 diff --git a/src/javascript/jsc/bindings/ZigGlobalObject.cpp b/src/javascript/jsc/bindings/ZigGlobalObject.cpp index dd98742d2..e470e27b5 100644 --- a/src/javascript/jsc/bindings/ZigGlobalObject.cpp +++ b/src/javascript/jsc/bindings/ZigGlobalObject.cpp @@ -58,6 +58,8 @@ #include #include +#include + #include #include #include @@ -82,22 +84,21 @@ namespace JSCastingHelpers = JSC::JSCastingHelpers; bool has_loaded_jsc = false; -extern "C" JSC__JSGlobalObject *Zig__GlobalObject__create(JSClassRef *globalObjectClass, int count, - void *console_client) { - - if (!has_loaded_jsc) { +extern "C" void JSCInitialize() { + if (has_loaded_jsc) return; JSC::Options::useSourceProviderCache() = true; JSC::Options::useUnlinkedCodeBlockJettisoning() = false; // JSC::Options::useTopLevelAwait() = true; JSC::Options::exposeInternalModuleLoader() = true; - std::set_terminate([]() { Zig__GlobalObject__onCrash(); }); + // std::set_terminate([]() { Zig__GlobalObject__onCrash(); }); WTF::initializeMainThread(); JSC::initialize(); + // Gigacage::disablePrimitiveGigacage(); has_loaded_jsc = true; - } - - // JSC::Options::useCodeCache() = false; +} +extern "C" JSC__JSGlobalObject *Zig__GlobalObject__create(JSClassRef *globalObjectClass, int count, + void *console_client) { auto heapSize = JSC::LargeHeap; JSC::VM &vm = JSC::VM::create(heapSize).leakRef(); -- cgit v1.2.3