mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
Support debugging builtin modules (#15018)
This commit is contained in:
@@ -2,7 +2,7 @@ option(WEBKIT_VERSION "The version of WebKit to use")
|
||||
option(WEBKIT_LOCAL "If a local version of WebKit should be used instead of downloading")
|
||||
|
||||
if(NOT WEBKIT_VERSION)
|
||||
set(WEBKIT_VERSION 4f92f334956b250a6bc4ecc1529945bacd22d96c)
|
||||
set(WEBKIT_VERSION 73b551e25d97e463e8e2c86cb819b8639fcbda06)
|
||||
endif()
|
||||
|
||||
if(WEBKIT_LOCAL)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include <JavaScriptCore/LazyPropertyInlines.h>
|
||||
#include <JavaScriptCore/VMTrapsInlines.h>
|
||||
#include <JavaScriptCore/JSModuleLoader.h>
|
||||
|
||||
#include <JavaScriptCore/Debugger.h>
|
||||
#include <utility>
|
||||
|
||||
#include "InternalModuleRegistryConstants.h"
|
||||
@@ -54,6 +54,9 @@ JSC::JSValue generateModule(JSC::JSGlobalObject* globalObject, JSC::VM& vm, cons
|
||||
static_cast<JSC::JSGlobalObject*>(globalObject));
|
||||
|
||||
RETURN_IF_EXCEPTION(throwScope, {});
|
||||
if (UNLIKELY(globalObject->hasDebugger() && globalObject->debugger()->isInteractivelyDebugging())) {
|
||||
globalObject->debugger()->sourceParsed(globalObject, source.provider(), -1, ""_s);
|
||||
}
|
||||
|
||||
JSC::MarkedArgumentBuffer argList;
|
||||
JSValue result = JSC::profiledCall(
|
||||
|
||||
@@ -14,22 +14,22 @@ pub const OS = struct {
|
||||
pub fn create(globalObject: *JSC.JSGlobalObject) JSC.JSValue {
|
||||
const module = JSC.JSValue.createEmptyObject(globalObject, 16);
|
||||
|
||||
module.put(globalObject, JSC.ZigString.static("cpus"), JSC.NewFunction(globalObject, JSC.ZigString.static("cpus"), 0, cpus, true));
|
||||
module.put(globalObject, JSC.ZigString.static("freemem"), JSC.NewFunction(globalObject, JSC.ZigString.static("freemem"), 0, freemem, true));
|
||||
module.put(globalObject, JSC.ZigString.static("getPriority"), JSC.NewFunction(globalObject, JSC.ZigString.static("getPriority"), 1, getPriority, true));
|
||||
module.put(globalObject, JSC.ZigString.static("homedir"), JSC.NewFunction(globalObject, JSC.ZigString.static("homedir"), 0, homedir, true));
|
||||
module.put(globalObject, JSC.ZigString.static("hostname"), JSC.NewFunction(globalObject, JSC.ZigString.static("hostname"), 0, hostname, true));
|
||||
module.put(globalObject, JSC.ZigString.static("loadavg"), JSC.NewFunction(globalObject, JSC.ZigString.static("loadavg"), 0, loadavg, true));
|
||||
module.put(globalObject, JSC.ZigString.static("machine"), JSC.NewFunction(globalObject, JSC.ZigString.static("machine"), 0, machine, true));
|
||||
module.put(globalObject, JSC.ZigString.static("networkInterfaces"), JSC.NewFunction(globalObject, JSC.ZigString.static("networkInterfaces"), 0, networkInterfaces, true));
|
||||
module.put(globalObject, JSC.ZigString.static("release"), JSC.NewFunction(globalObject, JSC.ZigString.static("release"), 0, release, true));
|
||||
module.put(globalObject, JSC.ZigString.static("setPriority"), JSC.NewFunction(globalObject, JSC.ZigString.static("setPriority"), 2, setPriority, true));
|
||||
module.put(globalObject, JSC.ZigString.static("totalmem"), JSC.NewFunction(globalObject, JSC.ZigString.static("totalmem"), 0, totalmem, true));
|
||||
module.put(globalObject, JSC.ZigString.static("type"), JSC.NewFunction(globalObject, JSC.ZigString.static("type"), 0, OS.type, true));
|
||||
module.put(globalObject, JSC.ZigString.static("uptime"), JSC.NewFunction(globalObject, JSC.ZigString.static("uptime"), 0, uptime, true));
|
||||
module.put(globalObject, JSC.ZigString.static("userInfo"), JSC.NewFunction(globalObject, JSC.ZigString.static("userInfo"), 0, userInfo, true));
|
||||
module.put(globalObject, JSC.ZigString.static("version"), JSC.NewFunction(globalObject, JSC.ZigString.static("version"), 0, version, true));
|
||||
module.put(globalObject, JSC.ZigString.static("machine"), JSC.NewFunction(globalObject, JSC.ZigString.static("machine"), 0, machine, true));
|
||||
module.put(globalObject, JSC.ZigString.static("cpus"), JSC.NewFunction(globalObject, JSC.ZigString.static("cpus"), 0, cpus, false));
|
||||
module.put(globalObject, JSC.ZigString.static("freemem"), JSC.NewFunction(globalObject, JSC.ZigString.static("freemem"), 0, freemem, false));
|
||||
module.put(globalObject, JSC.ZigString.static("getPriority"), JSC.NewFunction(globalObject, JSC.ZigString.static("getPriority"), 1, getPriority, false));
|
||||
module.put(globalObject, JSC.ZigString.static("homedir"), JSC.NewFunction(globalObject, JSC.ZigString.static("homedir"), 0, homedir, false));
|
||||
module.put(globalObject, JSC.ZigString.static("hostname"), JSC.NewFunction(globalObject, JSC.ZigString.static("hostname"), 0, hostname, false));
|
||||
module.put(globalObject, JSC.ZigString.static("loadavg"), JSC.NewFunction(globalObject, JSC.ZigString.static("loadavg"), 0, loadavg, false));
|
||||
module.put(globalObject, JSC.ZigString.static("machine"), JSC.NewFunction(globalObject, JSC.ZigString.static("machine"), 0, machine, false));
|
||||
module.put(globalObject, JSC.ZigString.static("networkInterfaces"), JSC.NewFunction(globalObject, JSC.ZigString.static("networkInterfaces"), 0, networkInterfaces, false));
|
||||
module.put(globalObject, JSC.ZigString.static("release"), JSC.NewFunction(globalObject, JSC.ZigString.static("release"), 0, release, false));
|
||||
module.put(globalObject, JSC.ZigString.static("setPriority"), JSC.NewFunction(globalObject, JSC.ZigString.static("setPriority"), 2, setPriority, false));
|
||||
module.put(globalObject, JSC.ZigString.static("totalmem"), JSC.NewFunction(globalObject, JSC.ZigString.static("totalmem"), 0, totalmem, false));
|
||||
module.put(globalObject, JSC.ZigString.static("type"), JSC.NewFunction(globalObject, JSC.ZigString.static("type"), 0, OS.type, false));
|
||||
module.put(globalObject, JSC.ZigString.static("uptime"), JSC.NewFunction(globalObject, JSC.ZigString.static("uptime"), 0, uptime, false));
|
||||
module.put(globalObject, JSC.ZigString.static("userInfo"), JSC.NewFunction(globalObject, JSC.ZigString.static("userInfo"), 0, userInfo, false));
|
||||
module.put(globalObject, JSC.ZigString.static("version"), JSC.NewFunction(globalObject, JSC.ZigString.static("version"), 0, version, false));
|
||||
module.put(globalObject, JSC.ZigString.static("machine"), JSC.NewFunction(globalObject, JSC.ZigString.static("machine"), 0, machine, false));
|
||||
|
||||
return module;
|
||||
}
|
||||
|
||||
@@ -87,31 +87,40 @@ function lazyCpus({ cpus }) {
|
||||
// all logic based on `process.platform` and `process.arch` is inlined at bundle time
|
||||
function bound(obj) {
|
||||
return {
|
||||
availableParallelism: () => navigator.hardwareConcurrency,
|
||||
arch: () => process.arch,
|
||||
availableParallelism: function () {
|
||||
return navigator.hardwareConcurrency;
|
||||
},
|
||||
arch: function () {
|
||||
return process.arch;
|
||||
},
|
||||
cpus: lazyCpus(obj),
|
||||
endianness: () => (process.arch === "arm64" || process.arch === "x64" ? "LE" : $bundleError("TODO: endianness")),
|
||||
endianness: function () {
|
||||
return process.arch === "arm64" || process.arch === "x64" ? "LE" : $bundleError("TODO: endianness");
|
||||
},
|
||||
freemem: obj.freemem.bind(obj),
|
||||
getPriority: obj.getPriority.bind(obj),
|
||||
homedir: obj.homedir.bind(obj),
|
||||
hostname: obj.hostname.bind(obj),
|
||||
loadavg: obj.loadavg.bind(obj),
|
||||
networkInterfaces: obj.networkInterfaces.bind(obj),
|
||||
platform: () => process.platform,
|
||||
platform: function () {
|
||||
return process.platform;
|
||||
},
|
||||
release: obj.release.bind(obj),
|
||||
setPriority: obj.setPriority.bind(obj),
|
||||
get tmpdir() {
|
||||
return tmpdir;
|
||||
},
|
||||
totalmem: obj.totalmem.bind(obj),
|
||||
type: () =>
|
||||
process.platform === "win32"
|
||||
type: function () {
|
||||
return process.platform === "win32"
|
||||
? "Windows_NT"
|
||||
: process.platform === "darwin"
|
||||
? "Darwin"
|
||||
: process.platform === "linux"
|
||||
? "Linux"
|
||||
: $bundleError("TODO: type"),
|
||||
: $bundleError("TODO: type");
|
||||
},
|
||||
uptime: obj.uptime.bind(obj),
|
||||
userInfo: obj.userInfo.bind(obj),
|
||||
version: obj.version.bind(obj),
|
||||
|
||||
Reference in New Issue
Block a user