JavaScriptCore
Bun 静态链接了 JavaScriptCore(以及 WebKit),其许可证为 LGPL-2。WebKit 中的 WebCore 文件同样根据 LGPL-2 许可。根据 LGPL-2:(1) 如果你静态链接了一个 LGPL 许可的库,你还必须以目标文件(不一定是源代码)格式提供你的应用程序,以便用户有机会修改库并重新链接应用程序。Bun 修改后的 WebKit 位于 https://github.com/oven-sh/webkit。要使用修改内容重新链接 Bun:
git clone https://github.com/oven-sh/WebKit vendor/WebKitbun sync-webkit-source(检出scripts/build/deps/webkit.ts中WEBKIT_VERSION指定的版本)bun run build:local
bun run build:local 会编译 JavaScriptCore,编译 Bun 针对 JavaScriptCore 的 .cpp 绑定(使用 JavaScriptCore 的目标文件),并输出一个包含你所做修改的新 bun 二进制文件。