Skip to content

Commit 4854e5a

Browse files
update ng to 0.13
1 parent df3808f commit 4854e5a

55 files changed

Lines changed: 7811 additions & 6748 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# hirofa-quickjs_sys - Changelog
22

3+
## 0.14.0
4+
5+
* update quickjs-ng to 0.13.0
6+
37
## 0.13.0
48

59
* update quickjs-ng to 0.12.0

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
edition = "2024"
33
name = "hirofa-quickjs-sys"
44
description = "QuickJS, QuickJS-NG Javascript Engine FFI bindings"
5-
version = "0.13.0"
5+
version = "0.14.0"
66
readme = "README.md"
77
repository = "https://github.com/HiRoFa/quickjs-sys"
88
license = "MIT"

build.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ fn main() {
5656
];
5757
#[cfg(feature = "quickjs-ng")]
5858
let files = [
59-
"cutils.c",
6059
"dtoa.c",
6160
"libregexp.c",
6261
"libunicode.c",

quickjs-ng/bindings.rs

Lines changed: 43 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -254,8 +254,10 @@ pub const JS_DEF_PROP_DOUBLE: u32 = 6;
254254
pub const JS_DEF_PROP_UNDEFINED: u32 = 7;
255255
pub const JS_DEF_OBJECT: u32 = 8;
256256
pub const JS_DEF_ALIAS: u32 = 9;
257+
pub const JS_DEF_PROP_SYMBOL: u32 = 10;
258+
pub const JS_DEF_PROP_BOOL: u32 = 11;
257259
pub const QJS_VERSION_MAJOR: u32 = 0;
258-
pub const QJS_VERSION_MINOR: u32 = 12;
260+
pub const QJS_VERSION_MINOR: u32 = 13;
259261
pub const QJS_VERSION_PATCH: u32 = 0;
260262
pub const QJS_VERSION_SUFFIX: &[u8; 1] = b"\0";
261263
pub type __gnuc_va_list = __builtin_va_list;
@@ -2998,46 +3000,46 @@ unsafe extern "C" {
29983000
pub fn JS_NewContextRaw(rt: *mut JSRuntime) -> *mut JSContext;
29993001
}
30003002
unsafe extern "C" {
3001-
pub fn JS_AddIntrinsicBaseObjects(ctx: *mut JSContext);
3003+
pub fn JS_AddIntrinsicBaseObjects(ctx: *mut JSContext) -> ::std::os::raw::c_int;
30023004
}
30033005
unsafe extern "C" {
3004-
pub fn JS_AddIntrinsicDate(ctx: *mut JSContext);
3006+
pub fn JS_AddIntrinsicDate(ctx: *mut JSContext) -> ::std::os::raw::c_int;
30053007
}
30063008
unsafe extern "C" {
3007-
pub fn JS_AddIntrinsicEval(ctx: *mut JSContext);
3009+
pub fn JS_AddIntrinsicEval(ctx: *mut JSContext) -> ::std::os::raw::c_int;
30083010
}
30093011
unsafe extern "C" {
30103012
pub fn JS_AddIntrinsicRegExpCompiler(ctx: *mut JSContext);
30113013
}
30123014
unsafe extern "C" {
3013-
pub fn JS_AddIntrinsicRegExp(ctx: *mut JSContext);
3015+
pub fn JS_AddIntrinsicRegExp(ctx: *mut JSContext) -> ::std::os::raw::c_int;
30143016
}
30153017
unsafe extern "C" {
3016-
pub fn JS_AddIntrinsicJSON(ctx: *mut JSContext);
3018+
pub fn JS_AddIntrinsicJSON(ctx: *mut JSContext) -> ::std::os::raw::c_int;
30173019
}
30183020
unsafe extern "C" {
3019-
pub fn JS_AddIntrinsicProxy(ctx: *mut JSContext);
3021+
pub fn JS_AddIntrinsicProxy(ctx: *mut JSContext) -> ::std::os::raw::c_int;
30203022
}
30213023
unsafe extern "C" {
3022-
pub fn JS_AddIntrinsicMapSet(ctx: *mut JSContext);
3024+
pub fn JS_AddIntrinsicMapSet(ctx: *mut JSContext) -> ::std::os::raw::c_int;
30233025
}
30243026
unsafe extern "C" {
3025-
pub fn JS_AddIntrinsicTypedArrays(ctx: *mut JSContext);
3027+
pub fn JS_AddIntrinsicTypedArrays(ctx: *mut JSContext) -> ::std::os::raw::c_int;
30263028
}
30273029
unsafe extern "C" {
3028-
pub fn JS_AddIntrinsicPromise(ctx: *mut JSContext);
3030+
pub fn JS_AddIntrinsicPromise(ctx: *mut JSContext) -> ::std::os::raw::c_int;
30293031
}
30303032
unsafe extern "C" {
3031-
pub fn JS_AddIntrinsicBigInt(ctx: *mut JSContext);
3033+
pub fn JS_AddIntrinsicBigInt(ctx: *mut JSContext) -> ::std::os::raw::c_int;
30323034
}
30333035
unsafe extern "C" {
3034-
pub fn JS_AddIntrinsicWeakRef(ctx: *mut JSContext);
3036+
pub fn JS_AddIntrinsicWeakRef(ctx: *mut JSContext) -> ::std::os::raw::c_int;
30353037
}
30363038
unsafe extern "C" {
3037-
pub fn JS_AddPerformance(ctx: *mut JSContext);
3039+
pub fn JS_AddPerformance(ctx: *mut JSContext) -> ::std::os::raw::c_int;
30383040
}
30393041
unsafe extern "C" {
3040-
pub fn JS_AddIntrinsicDOMException(ctx: *mut JSContext);
3042+
pub fn JS_AddIntrinsicDOMException(ctx: *mut JSContext) -> ::std::os::raw::c_int;
30413043
}
30423044
unsafe extern "C" {
30433045
pub fn JS_IsEqual(ctx: *mut JSContext, op1: JSValue, op2: JSValue) -> ::std::os::raw::c_int;
@@ -4088,6 +4090,12 @@ unsafe extern "C" {
40884090
unsafe extern "C" {
40894091
pub fn JS_IsArrayBuffer(obj: JSValue) -> bool;
40904092
}
4093+
unsafe extern "C" {
4094+
pub fn JS_IsImmutableArrayBuffer(obj: JSValue) -> ::std::os::raw::c_int;
4095+
}
4096+
unsafe extern "C" {
4097+
pub fn JS_SetImmutableArrayBuffer(obj: JSValue, immutable: bool) -> ::std::os::raw::c_int;
4098+
}
40914099
unsafe extern "C" {
40924100
pub fn JS_GetUint8Array(ctx: *mut JSContext, psize: *mut usize, obj: JSValue) -> *mut u8;
40934101
}
@@ -4192,6 +4200,9 @@ unsafe extern "C" {
41924200
unsafe extern "C" {
41934201
pub fn JS_IsPromise(val: JSValue) -> bool;
41944202
}
4203+
unsafe extern "C" {
4204+
pub fn JS_NewSettledPromise(ctx: *mut JSContext, is_reject: bool, value: JSValue) -> JSValue;
4205+
}
41954206
unsafe extern "C" {
41964207
pub fn JS_NewSymbol(
41974208
ctx: *mut JSContext,
@@ -4268,6 +4279,15 @@ pub type JSModuleNormalizeFunc = ::std::option::Option<
42684279
opaque: *mut ::std::os::raw::c_void,
42694280
) -> *mut ::std::os::raw::c_char,
42704281
>;
4282+
pub type JSModuleNormalizeFunc2 = ::std::option::Option<
4283+
unsafe extern "C" fn(
4284+
ctx: *mut JSContext,
4285+
module_base_name: *const ::std::os::raw::c_char,
4286+
module_name: *const ::std::os::raw::c_char,
4287+
attributes: JSValue,
4288+
opaque: *mut ::std::os::raw::c_void,
4289+
) -> *mut ::std::os::raw::c_char,
4290+
>;
42714291
pub type JSModuleLoaderFunc = ::std::option::Option<
42724292
unsafe extern "C" fn(
42734293
ctx: *mut JSContext,
@@ -4307,6 +4327,9 @@ unsafe extern "C" {
43074327
opaque: *mut ::std::os::raw::c_void,
43084328
);
43094329
}
4330+
unsafe extern "C" {
4331+
pub fn JS_SetModuleNormalizeFunc2(rt: *mut JSRuntime, module_normalize: JSModuleNormalizeFunc2);
4332+
}
43104333
unsafe extern "C" {
43114334
pub fn JS_GetImportMeta(ctx: *mut JSContext, m: *mut JSModuleDef) -> JSValue;
43124335
}
@@ -4536,6 +4559,7 @@ unsafe extern "C" {
45364559
cproto: JSCFunctionEnum,
45374560
magic: ::std::os::raw::c_int,
45384561
proto_val: JSValue,
4562+
n_fields: ::std::os::raw::c_int,
45394563
) -> JSValue;
45404564
}
45414565
unsafe extern "C" {
@@ -4573,7 +4597,11 @@ unsafe extern "C" {
45734597
) -> JSValue;
45744598
}
45754599
unsafe extern "C" {
4576-
pub fn JS_SetConstructor(ctx: *mut JSContext, func_obj: JSValue, proto: JSValue);
4600+
pub fn JS_SetConstructor(
4601+
ctx: *mut JSContext,
4602+
func_obj: JSValue,
4603+
proto: JSValue,
4604+
) -> ::std::os::raw::c_int;
45774605
}
45784606
#[repr(C)]
45794607
#[derive(Copy, Clone)]

quickjs-ng/quickjs/.github/workflows/ci.yml

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,12 @@ jobs:
6060
- { os: ubuntu-latest, configType: tcc }
6161
- { os: ubuntu-latest, arch: x86, runTest262: true }
6262
- { os: ubuntu-latest, arch: riscv64 }
63-
- { os: ubuntu-latest, arch: s390x }
6463

6564
- { os: macos-14, configType: Debug }
6665
- { os: macos-14, configType: Release }
6766
- { os: macos-14, configType: examples }
6867
- { os: macos-14, configType: shared }
69-
- { os: macos-14, configType: asan+ubsan }
68+
- { os: macos-14, configType: asan+ubsan, runTest262: true }
7069
steps:
7170
- uses: actions/checkout@v6
7271
with:
@@ -169,6 +168,10 @@ jobs:
169168
run: |
170169
./build/api-test
171170
171+
- name: test lre
172+
run: |
173+
./build/lre-test
174+
172175
windows-msvc:
173176
runs-on: ${{ matrix.config.os }}
174177
strategy:
@@ -185,7 +188,7 @@ jobs:
185188
- uses: actions/checkout@v6
186189
- name: build
187190
run: |
188-
cmake -B build -DQJS_BUILD_EXAMPLES=ON -G "Visual Studio 17 2022" -A ${{matrix.config.arch}}
191+
cmake -B build -DQJS_BUILD_WERROR=ON -DQJS_BUILD_EXAMPLES=ON -G "Visual Studio 17 2022" -A ${{matrix.config.arch}}
189192
cmake --build build --config ${{matrix.config.buildType}}
190193
- name: stats
191194
run: |
@@ -205,6 +208,9 @@ jobs:
205208
- name: test api
206209
run: |
207210
build\${{matrix.config.buildType}}\api-test.exe
211+
- name: test lre
212+
run: |
213+
build\${{matrix.config.buildType}}\lre-test.exe
208214
- name: Set up Visual Studio shell
209215
uses: egor-tensin/vs-shell@v2
210216
with:
@@ -225,7 +231,7 @@ jobs:
225231
- name: build
226232
run: |
227233
git submodule update --init --checkout --depth 1
228-
cmake -B build -DQJS_BUILD_EXAMPLES=ON -G "Visual Studio 17 2022" -T ClangCL
234+
cmake -B build -DQJS_BUILD_WERROR=ON -DQJS_BUILD_EXAMPLES=ON -G "Visual Studio 17 2022" -T ClangCL
229235
cmake --build build --config ${{matrix.buildType}}
230236
- name: stats
231237
run: |
@@ -245,6 +251,9 @@ jobs:
245251
- name: test api
246252
run: |
247253
build\${{matrix.buildType}}\api-test.exe
254+
- name: test lre
255+
run: |
256+
build\${{matrix.buildType}}\lre-test.exe
248257
249258
windows-ninja:
250259
runs-on: windows-latest
@@ -261,7 +270,7 @@ jobs:
261270
- name: build
262271
run: |
263272
git submodule update --init --checkout --depth 1
264-
cmake -B build -DQJS_BUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=${{matrix.buildType}} -G "Ninja"
273+
cmake -B build -DQJS_BUILD_WERROR=ON -DQJS_BUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=${{matrix.buildType}} -G "Ninja"
265274
cmake --build build
266275
- name: stats
267276
run: |
@@ -277,6 +286,9 @@ jobs:
277286
- name: test api
278287
run: |
279288
build\api-test.exe
289+
- name: test lre
290+
run: |
291+
build\lre-test.exe
280292
281293
windows-sdk:
282294
runs-on: windows-latest
@@ -294,7 +306,7 @@ jobs:
294306
features: 'OptionId.DesktopCPPx86,OptionId.DesktopCPPx64'
295307
- name: build
296308
run: |
297-
cmake -B build -DQJS_BUILD_EXAMPLES=ON -DCMAKE_SYSTEM_VERSION="10.0.26100.0" -A ${{matrix.arch}}
309+
cmake -B build -DQJS_BUILD_WERROR=ON -DQJS_BUILD_EXAMPLES=ON -DCMAKE_SYSTEM_VERSION="10.0.26100.0" -A ${{matrix.arch}}
298310
cmake --build build --config ${{matrix.buildType}}
299311
- name: stats
300312
run: |
@@ -310,6 +322,9 @@ jobs:
310322
- name: test api
311323
run: |
312324
build\${{matrix.buildType}}\api-test.exe
325+
- name: test lre
326+
run: |
327+
build\${{matrix.buildType}}\lre-test.exe
313328
314329
windows-mingw:
315330
runs-on: windows-latest
@@ -364,6 +379,9 @@ jobs:
364379
- name: test api
365380
run: |
366381
./build/api-test
382+
- name: test lre
383+
run: |
384+
./build/lre-test
367385
windows-mingw-shared:
368386
runs-on: windows-latest
369387
defaults:
@@ -398,7 +416,7 @@ jobs:
398416
run: emcc -v
399417
- name: build
400418
run: |
401-
emcmake cmake -B build -DQJS_BUILD_LIBC=ON
419+
emcmake cmake -B build -DQJS_BUILD_WERROR=ON -DQJS_BUILD_LIBC=ON
402420
emmake make -C build qjs_wasm "-j$(getconf _NPROCESSORS_ONLN)"
403421
- name: result
404422
run: ls -lh build
@@ -413,14 +431,14 @@ jobs:
413431
sudo apt install /tmp/wasi-sdk*.deb
414432
- name: test
415433
run: |
416-
cmake -B build -DCMAKE_TOOLCHAIN_FILE=/opt/wasi-sdk/share/cmake/wasi-sdk.cmake
434+
cmake -B build -DQJS_BUILD_WERROR=ON -DCMAKE_TOOLCHAIN_FILE=/opt/wasi-sdk/share/cmake/wasi-sdk.cmake
417435
make -C build qjs_exe
418436
wasmtime run build/qjs -qd
419437
echo "console.log('hello wasi!');" > t.js
420438
wasmtime run --dir . build/qjs t.js
421439
- name: build wasi reactor
422440
run: |
423-
cmake -B build -DCMAKE_TOOLCHAIN_FILE=/opt/wasi-sdk/share/cmake/wasi-sdk.cmake -DQJS_WASI_REACTOR=ON
441+
cmake -B build -DQJS_BUILD_WERROR=ON -DCMAKE_TOOLCHAIN_FILE=/opt/wasi-sdk/share/cmake/wasi-sdk.cmake -DQJS_WASI_REACTOR=ON
424442
make -C build qjs_wasi
425443
ls -lh build/qjs.wasm
426444
@@ -457,6 +475,10 @@ jobs:
457475
run: |
458476
./build/api-test
459477
478+
- name: test lre
479+
run: |
480+
./build/lre-test
481+
460482
openbsd:
461483
runs-on: ubuntu-latest
462484
steps:
@@ -507,7 +529,7 @@ jobs:
507529
- uses: actions/checkout@v6
508530
- name: configure
509531
run: |
510-
cmake -B build -GXcode -DCMAKE_SYSTEM_NAME:STRING=iOS -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED:BOOL=NO -DQJS_BUILD_LIBC=ON
532+
cmake -B build -GXcode -DQJS_BUILD_WERROR=ON -DCMAKE_SYSTEM_NAME:STRING=iOS -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED:BOOL=NO -DQJS_BUILD_LIBC=ON
511533
- name: build
512534
run: |
513535
cmake --build build --config Release --target qjs
@@ -782,7 +804,7 @@ jobs:
782804
run: |
783805
meson test -C build-${{ matrix.flavor }} --timeout-multiplier 5 --print-errorlogs
784806
meson test --benchmark -C build-${{ matrix.flavor }} --timeout-multiplier 5 --print-errorlogs
785-
- uses: actions/upload-artifact@v6
807+
- uses: actions/upload-artifact@v7
786808
if: ${{ failure() }}
787809
with:
788810
name: ${{ matrix.platform }}-${{ matrix.mode.name }}-${{ matrix.features.name }}-${{ matrix.flavor }}-logs

0 commit comments

Comments
 (0)