Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion scripts/build/deps/webkit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* for local mode. Override via `--webkit-version=<hash>` to test a branch.
* From https://github.com/oven-sh/WebKit releases.
*/
export const WEBKIT_VERSION = "c6cfe90c6064bd80a1916b844c2f092735cfc720";
export const WEBKIT_VERSION = "eeab04040fa61fd595695980f9d054b7fc0ed855";

/**
* WebKit (JavaScriptCore) — the JS engine.
Expand Down
7 changes: 5 additions & 2 deletions src/js_printer/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -166,14 +166,17 @@ pub mod analyze_transpiled_module {
Self(value.0)
}
/// JSC `ScriptFetchParameters::Type` value. `None` maps to `JavaScript`
/// (NodesAnalyzeModule's no-attribute default).
/// (NodesAnalyzeModule's no-attribute default). JSC's `Text` (4) is never
/// produced: with BUN_JSC_ADDITIONS `type: "text"` is host-defined like
/// every other non-json/wasm type. Pinned by the static_asserts in
/// BunAnalyzeTranspiledModule.cpp.
#[inline]
pub fn to_script_fetch_parameters_type(self) -> u8 {
match self {
Self::None | Self::Javascript => 1,
Self::Webassembly => 2,
Self::Json => 3,
_ => 4,
_ => 5,
}
}
}
Expand Down
3 changes: 2 additions & 1 deletion src/jsc/bindings/BunAnalyzeTranspiledModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,8 @@ extern "C" void JSC_JSModuleRecord__addRequestedModuleHostDefined(JSModuleRecord
static_assert(static_cast<uint8_t>(JSC::ScriptFetchParameters::Type::JavaScript) == 1, "ScriptFetchParameters::Type tag drift vs to_script_fetch_parameters_type()");
static_assert(static_cast<uint8_t>(JSC::ScriptFetchParameters::Type::WebAssembly) == 2, "ScriptFetchParameters::Type tag drift vs to_script_fetch_parameters_type()");
static_assert(static_cast<uint8_t>(JSC::ScriptFetchParameters::Type::JSON) == 3, "ScriptFetchParameters::Type tag drift vs to_script_fetch_parameters_type()");
static_assert(static_cast<uint8_t>(JSC::ScriptFetchParameters::Type::HostDefined) == 4, "ScriptFetchParameters::Type tag drift vs to_script_fetch_parameters_type()");
static_assert(static_cast<uint8_t>(JSC::ScriptFetchParameters::Type::Text) == 4, "ScriptFetchParameters::Type tag drift vs to_script_fetch_parameters_type()");
static_assert(static_cast<uint8_t>(JSC::ScriptFetchParameters::Type::HostDefined) == 5, "ScriptFetchParameters::Type tag drift vs to_script_fetch_parameters_type()");

extern "C" void JSC_JSModuleRecord__addImportEntrySingle(JSModuleRecord* moduleRecord, Identifier* identifierArray, uint32_t importName, uint32_t localName, uint32_t moduleName, uint8_t moduleRequestType)
{
Expand Down
4 changes: 4 additions & 0 deletions src/jsc/bindings/NodeVM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ static JSValue scriptFetchParametersToImportAttributes(JSGlobalObject* globalObj
case JSC::ScriptFetchParameters::Type::JavaScript:
obj->putDirect(vm, vm.propertyNames->type, jsNontrivialString(vm, "javascript"_s));
break;
case JSC::ScriptFetchParameters::Type::Text:
// Unreachable with BUN_JSC_ADDITIONS (`type: "text"` parses as HostDefined); kept so the switch stays exhaustive.
obj->putDirect(vm, vm.propertyNames->type, jsNontrivialString(vm, "text"_s));
break;
case JSC::ScriptFetchParameters::Type::HostDefined:
obj->putDirect(vm, vm.propertyNames->type, jsString(vm, params->hostDefinedImportType()));
break;
Expand Down
4 changes: 3 additions & 1 deletion src/jsc/bindings/NodeVMSyntheticModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,9 @@ void NodeVMSyntheticModule::createModuleRecord(JSGlobalObject* globalObject)
{
VM& vm = globalObject->vm();

SyntheticModuleRecord* moduleRecord = SyntheticModuleRecord::create(globalObject, vm, globalObject->syntheticModuleRecordStructure(), Identifier::fromString(vm, identifier()));
// The source type only feeds AbstractModuleRecord::moduleType(), which the loader attaches to
// errors as the failing module's kind; a vm.SyntheticModule is a JavaScript module in that sense.
SyntheticModuleRecord* moduleRecord = SyntheticModuleRecord::create(globalObject, vm, globalObject->syntheticModuleRecordStructure(), Identifier::fromString(vm, identifier()), SourceProviderSourceType::Module);

m_moduleRecord.set(vm, this, moduleRecord);

Expand Down
2 changes: 1 addition & 1 deletion src/jsc/bindings/root.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
#include <JavaScriptCore/JSCJSValue.h>
#include <wtf/text/MakeString.h>
#include <JavaScriptCore/JSCInlines.h>
#include <JavaScriptCore/HandleSet.h>
#include <JavaScriptCore/StrongSet.h>
#include <wtf/Ref.h>
#include <wtf/ThreadSafeRefCounted.h>
#endif
Expand Down
2 changes: 1 addition & 1 deletion src/jsc/bindings/wtf-bindings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ static thread_local WTF::StackBounds stackBoundsForCurrentThread = WTF::StackBou

extern "C" [[ZIG_EXPORT(nothrow)]] void Bun__StackCheck__initialize()
{
stackBoundsForCurrentThread = WTF::StackBounds::currentThreadStackBounds();
stackBoundsForCurrentThread = WTF::StackBounds::currentThreadStackBoundsForEmbedder();
}

extern "C" [[ZIG_EXPORT(nothrow)]] __attribute__((__always_inline__)) void* Bun__StackCheck__getMaxStack()
Expand Down
Loading