[misc] Add generate-sink

This commit is contained in:
Jarred Sumner
2022-06-29 07:12:13 -07:00
parent 2fa51493c5
commit 856589bd98
2 changed files with 12 additions and 6 deletions

View File

@@ -408,7 +408,8 @@ generate-builtins:
mkdir -p src/bun.js/builtins/cpp
$(shell which python || which python2) $(realpath $(WEBKIT_DIR)/Source/JavaScriptCore/Scripts/generate-js-builtins.py) -i $(realpath src)/bun.js/builtins/js -o $(realpath src)/bun.js/builtins/cpp --framework WebCore --force
$(shell which python || which python2) $(realpath $(WEBKIT_DIR)/Source/JavaScriptCore/Scripts/generate-js-builtins.py) -i $(realpath src)/bun.js/builtins/js -o $(realpath src)/bun.js/builtins/cpp --framework WebCore --wrappers-only
echo 'namespace Zig { class GlobalObject; }' >> /tmp/1.h
rm -rf /tmp/1.h src/bun.js/builtins/cpp/WebCoreJSBuiltinInternals.h.1
echo -e '// clang-format off\nnamespace Zig { class GlobalObject; }' >> /tmp/1.h
cat /tmp/1.h src/bun.js/builtins/cpp/WebCoreJSBuiltinInternals.h > src/bun.js/builtins/cpp/WebCoreJSBuiltinInternals.h.1
mv src/bun.js/builtins/cpp/WebCoreJSBuiltinInternals.h.1 src/bun.js/builtins/cpp/WebCoreJSBuiltinInternals.h
$(SED) -i -e 's/class JSDOMGlobalObject/using JSDOMGlobalObject = Zig::GlobalObject/' src/bun.js/builtins/cpp/WebCoreJSBuiltinInternals.h
@@ -1208,11 +1209,16 @@ bun-relink: bun-relink-copy bun-link-lld-release bun-link-lld-release-dsym
wasm-return1:
zig build-lib -OReleaseSmall test/bun.js/wasm-return-1-test.zig -femit-bin=test/bun.js/wasm-return-1-test.wasm -target wasm32-freestanding
generate-sink:
bun src/bun.js/generate-jssink.js
$(WEBKIT_DIR)/Source/JavaScriptCore/create_hash_table src/bun.js/bindings/JSSink.cpp > src/bun.js/bindings/JSSinkLookupTable.h
$(SED) -i -e 's/#include "Lookup.h"//' src/bun.js/bindings/JSSinkLookupTable.h
$(SED) -i -e 's/namespace JSC {//' src/bun.js/bindings/JSSinkLookupTable.h
$(SED) -i -e 's/} \/\/ namespace JSC//' src/bun.js/bindings/JSSinkLookupTable.h
EMIT_LLVM_FOR_RELEASE=-emit-llvm -flto="full"
EMIT_LLVM_FOR_DEBUG=
EMIT_LLVM=$(EMIT_LLVM_FOR_DEBUG)
EMIT_LLVM=$(EMIT_LLVM_FOR_RELEASE)
# We do this outside of build.zig for performance reasons
# The C compilation stuff with build.zig is really slow and we don't need to run this as often as the rest

View File

@@ -165,7 +165,7 @@ JSC_DECLARE_CUSTOM_GETTER(function${name}__getter);
const outer = `
// AUTO-GENERATED FILE. DO NOT EDIT.
// Generated by ${import.meta.path} at ${new Date().toISOString()}
// Generated by 'make generate-sink' at ${new Date().toISOString()}
//
#pragma once
@@ -201,10 +201,10 @@ JSObject* createJSSinkControllerPrototype(JSC::VM& vm, JSC::JSGlobalObject* glob
async function implementation() {
const head = `
// AUTO-GENERATED FILE. DO NOT EDIT.
// Generated by ${import.meta.path} at ${new Date().toISOString()}
// Generated by 'make generate-sink' at ${new Date().toISOString()}
// To regenerate this file, run:
//
// bun src/bun.js/generate-jssink.js
// make generate-sink
//
#include "root.h"
#include "JSSink.h"