Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to QuickJS-ng #124

Closed
wants to merge 2 commits into from
Closed
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
3 changes: 1 addition & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@ BUILD_TS=ts/generated

# QuickJS
QUICKJS_OBJS=quickjs.o libregexp.o libunicode.o cutils.o quickjs-libc.o libbf.o
QUICKJS_CONFIG_VERSION=$(shell cat $(QUICKJS_ROOT)/VERSION)
QUICKJS_DEFINES:=-D_GNU_SOURCE -DCONFIG_VERSION=\"$(QUICKJS_CONFIG_VERSION)\" -DCONFIG_STACK_CHECK -DCONFIG_BIGNUM
QUICKJS_DEFINES:=-D_GNU_SOURCE
VARIANT_QUICKJS_OBJS=$(patsubst %.o, $(BUILD_QUICKJS)/%.$(VARIANT).o, $(QUICKJS_OBJS))

# quickjs-emscripten
Expand Down
4 changes: 0 additions & 4 deletions c/interface.c
Original file line number Diff line number Diff line change
Expand Up @@ -581,10 +581,6 @@ OwnedHeapChar *QTS_Typeof(JSContext *ctx, JSValueConst *value) {
result = "number";
} else if (JS_IsBigInt(ctx, *value)) {
result = "bigint";
} else if (JS_IsBigFloat(*value)) {
result = "bigfloat";
} else if (JS_IsBigDecimal(*value)) {
result = "bigdecimal";
} else if (JS_IsFunction(ctx, *value)) {
result = "function";
} else if (JS_IsBool(*value)) {
Expand Down
334 changes: 334 additions & 0 deletions quickjs/.github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,334 @@
name: ci

on:
pull_request:
paths:
- '**'
- '!.gitignore'
- '!LICENSE'
- '!TODO'
- '!doc/**'
- '!examples/**'
- '.github/workflows/ci.yml'
push:
branches:
- master

jobs:
linux:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
buildType: [Debug, Release]
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: build
run: |
make BUILD_TYPE=${{matrix.buildType}}
- name: stats
run: |
make stats
- name: test
run: |
make test
- name: test 262
if: ${{ matrix.buildType == 'Release' }}
run: |
time make test262
linux-32bits:
runs-on: ubuntu-latest
defaults:
run:
shell: alpine.sh {0}
steps:
- uses: actions/checkout@v3
- uses: jirutka/setup-alpine@v1
with:
arch: x86
packages: "build-base make cmake"
- name: build
run: |
make
- name: stats
run: |
make stats
- name: test
run: |
make test
linux-gcc48:
runs-on: ubuntu-latest
container:
image: ubuntu:14.04
steps:
- name: install dependencies
run: |
apt update && apt -y install make gcc-4.8 wget time software-properties-common
# git in default ppa repository is too old to run submodule checkout
add-apt-repository -y ppa:git-core/ppa
apt update
apt install -y git
wget https://github.com/Kitware/CMake/releases/download/v3.28.0-rc5/cmake-3.28.0-rc5-linux-x86_64.sh
sh cmake-3.28.0-rc5-linux-x86_64.sh --skip-license --prefix=/usr
- name: checkout
uses: actions/checkout@v3
with:
submodules: true
- name: build
run: |
CC=gcc-4.8 make
- name: stats
run: |
make stats
- name: test
run: |
make test
- name: test 262
run: |
time make test262
linux-examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: build
run: |
make BUILD_EXAMPLES=ON
- name: test
run: |
ldd build/hello
ldd build/hello_module
ldd build/test_fib
./build/hello
./build/hello_module
./build/test_fib
cp build/fib.so examples/
cp build/point.so examples/
cp build/bjson.so tests/
./build/qjs examples/test_fib.js
./build/qjs examples/test_point.js
./build/qjs tests/test_bjson.js
linux-shared:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: build
run: |
make BUILD_SHARED_LIBS=ON
ldd build/qjs
- name: stats
run: |
make stats
linux-asan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: build
run: |
make CONFIG_ASAN=ON
- name: test
env:
ASAN_OPTIONS: halt_on_error=1
run: |
make test
- name: test 262
env:
ASAN_OPTIONS: halt_on_error=1
run: |
time make test262
linux-msan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: build
env:
CC: clang
run: |
make CONFIG_MSAN=ON
- name: test
env:
MSAN_OPTIONS: halt_on_error=1
run: |
make test
linux-ubsan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: build
run: |
make CONFIG_UBSAN=ON
- name: test
env:
UBSAN_OPTIONS: halt_on_error=1
run: |
make test
- name: test 262
env:
UBSAN_OPTIONS: halt_on_error=1
run: |
time make test262

macos:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
buildType: [Debug, Release]
steps:
- uses: actions/checkout@v3
- name: build
run: |
make BUILD_TYPE=${{matrix.buildType}}
- name: stats
run: |
make stats
- name: test
run: |
make test
macos-examples:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: build
run: |
make BUILD_EXAMPLES=ON
- name: test
run: |
otool -L build/hello
otool -L build/hello_module
otool -L build/test_fib
./build/hello
./build/hello_module
./build/test_fib
cp build/fib.so examples/
cp build/point.so examples/
cp build/bjson.so tests/
./build/qjs examples/test_fib.js
./build/qjs examples/test_point.js
./build/qjs tests/test_bjson.js
macos-shared:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: build
run: |
make BUILD_SHARED_LIBS=ON
otool -L build/qjs
- name: stats
run: |
make stats
macos-asan:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: build
run: |
make CONFIG_ASAN=ON
- name: test
env:
ASAN_OPTIONS: halt_on_error=1
run: |
make test
macos-ubsan:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: build
run: |
make CONFIG_UBSAN=ON
- name: test
env:
UBSAN_OPTIONS: halt_on_error=1
run: |
make test

windows-clang:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: build
run: |
cmake -B build -G "Visual Studio 17 2022" -T ClangCL
cmake --build build --target qjs_exe
- name: stats
run: |
cmd /r build\Debug\qjs.exe -qd
- name: test
run: |
cmd /r build\Debug\qjs.exe tests\test_bigint.js
cmd /r build\Debug\qjs.exe tests\test_closure.js
cmd /r build\Debug\qjs.exe tests\test_language.js
cmd /r build\Debug\qjs.exe tests\test_builtin.js
cmd /r build\Debug\qjs.exe tests\test_loop.js
cmd /r build\Debug\qjs.exe tests\test_std.js
cmd /r build\Debug\qjs.exe tests\test_worker.js
cmd /r build\Debug\qjs.exe tests\test_queue_microtask.js

windows-mingw:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
buildType: [Debug, Release]
sys:
- mingw32
- mingw64
- clang64
- ucrt64
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v3
- name: Setup MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
install: >-
git
make
pacboy: >-
cmake:p
ninja:p
toolchain:p
- name: build
run: |
make BUILD_TYPE=${{matrix.buildType}}
- name: stats
run: |
make stats
ldd build/qjs
- name: test
run: |
make test
windows-mingw-shared:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v3
- name: Setup MSYS2
uses: msys2/setup-msys2@v2
with:
install: >-
git
make
pacboy: >-
cmake:p
ninja:p
toolchain:p
- name: build
run: |
make BUILD_SHARED_LIBS=ON
ldd build/qjs
- name: stats
run: |
make stats
Loading