diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index 4924946e40..5e5e3e949d 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -2,7 +2,7 @@ name: lwnode actions on: [ push, pull_request ] jobs: build_lwnode: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest timeout-minutes: 30 strategy: fail-fast: false @@ -10,7 +10,7 @@ jobs: config: [ '', '--nopt --shared' ] steps: - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: submodules: true - name: Checkout Escargot @@ -30,7 +30,7 @@ jobs: run: | pushd $(pwd)/deps/node ./tools/test.py \ - -J -p dots --report --time --timeout 240 --repeat 1 \ + -J -p dots --report --time --timeout 300 --repeat 1 \ --shell=../../out/linux/Release/lwnode \ --skip-tests=$(sed 's/\s#.*//g' test/skip_tests.txt | paste -sd,) \ --unsupported-tests=$(sed '/#\|^$/d' test/skip_features.txt | paste -sd,) \ @@ -45,7 +45,7 @@ jobs: timeout-minutes: 30 steps: - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: submodules: true - name: Checkout Escargot @@ -85,7 +85,7 @@ jobs: profile: [t70std] steps: - name: Checkout source - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: submodules: true - name: Checkout Escargot @@ -118,8 +118,8 @@ jobs: fail-fast: false steps: - name: Checkout source - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 + uses: actions/checkout@v4 + - uses: actions/setup-python@v5 with: python-version: '3.10' - name: Install Packages diff --git a/deps/escargot b/deps/escargot index 97e698db34..57c23d62f0 160000 --- a/deps/escargot +++ b/deps/escargot @@ -1 +1 @@ -Subproject commit 97e698db347454bd11b7d58bae2d966f967739f1 +Subproject commit 57c23d62f0d1ceae744896f28108cff2a982a860 diff --git a/deps/node/test/skip_tests.txt b/deps/node/test/skip_tests.txt index 9b70838470..a8443123e1 100644 --- a/deps/node/test/skip_tests.txt +++ b/deps/node/test/skip_tests.txt @@ -163,6 +163,7 @@ test/parallel/test-whatwg-url-custom-properties.js test/parallel/test-worker-abort-on-uncaught-exception-terminate.js # randomly dies in docker test/parallel/test-worker-abort-on-uncaught-exception.js test/parallel/test-worker-cleanexit-with-moduleload.js +test/parallel/test-worker-console-listeners.js # occasionally crashed in CI, might be timing issue test/parallel/test-worker-crypto-sign-transfer-result.js test/parallel/test-worker-data-url.js test/parallel/test-worker-error-stack-getter-throws.js @@ -193,7 +194,9 @@ test/parallel/test-worker-nexttick-terminate.js test/parallel/test-worker-process-cwd.js test/parallel/test-worker-process-env.js test/parallel/test-worker-sharedarraybuffer-from-worker-thread.js +test/parallel/test-worker-stack-overflow.js test/parallel/test-worker-stdio.js # CI 테스트중 간헐적으로 crash. 타이밍 이슈로 추정됨 +test/parallel/test-worker-stdio-from-preload-module.js # occasionally crashed in CI, might be timing issue test/parallel/test-worker-syntax-error-file.js test/parallel/test-worker-syntax-error.js test/parallel/test-worker-terminate-http2-respond-with-file.js diff --git a/escargot.gyp b/escargot.gyp index 06397e373b..50edc7117e 100755 --- a/escargot.gyp +++ b/escargot.gyp @@ -47,6 +47,7 @@ 'escargot_configs': [ '-DESCARGOT_SMALL_CONFIG=1', '-DESCARGOT_USE_CUSTOM_LOGGING=ON', + '-DESCARGOT_USE_EXTENDED_API=ON', '-DESCARGOT_ARCH=<(target_arch)', '-DESCARGOT_HOST=<(build_host)', '-DESCARGOT_MODE=<(escargot_build_mode)', diff --git a/src/api-data.cc b/src/api-data.cc index 5d24ab5280..2044cd7370 100644 --- a/src/api-data.cc +++ b/src/api-data.cc @@ -2314,14 +2314,14 @@ void String::ExternalStringResourceBase::operator delete(void* ptr) { Local Symbol::Description() const { auto lwIsolate = IsolateWrap::GetCurrent(); - auto esDescription = CVAL(this)->value()->asSymbol()->description(); - return Utils::NewLocal(lwIsolate->toV8(), esDescription.get()); + auto esDescription = CVAL(this)->value()->asSymbol()->descriptionString(); + return Utils::NewLocal(lwIsolate->toV8(), esDescription); } Local Private::Name() const { auto lwIsolate = IsolateWrap::GetCurrent(); - auto esDescription = CVAL(this)->value()->asSymbol()->description(); - return Utils::NewLocal(lwIsolate->toV8(), esDescription.get()); + auto esDescription = CVAL(this)->value()->asSymbol()->descriptionString(); + return Utils::NewLocal(lwIsolate->toV8(), esDescription); } template diff --git a/src/api/es-helper.cc b/src/api/es-helper.cc index bf94fe538e..0ec3a0ae3b 100755 --- a/src/api/es-helper.cc +++ b/src/api/es-helper.cc @@ -345,7 +345,10 @@ EvalResult ObjectRefHelper::setPrototype(ContextRef* context, [](ExecutionStateRef* state, ObjectRef* object, ValueRef* prototype) -> ValueRef* { - return ValueRef::create(object->setPrototype(state, prototype)); + // call ObjectRef::setObjectPrototype instead of ObjectRef::setPrototype + // here because ImmutablePrototypeObject blocks __proto__ property + // setting + return ValueRef::create(object->setObjectPrototype(state, prototype)); }, object, prototype); diff --git a/src/api/isolate.cc b/src/api/isolate.cc index 65f1b5b6e8..977fbcf754 100755 --- a/src/api/isolate.cc +++ b/src/api/isolate.cc @@ -576,7 +576,7 @@ SymbolRef* IsolateWrap::createApiSymbol(StringRef* name) { auto newSymbol = SymbolRef::create(name); bool found = false; for (size_t i = 0; i < apiSymbols_.size(); i++) { - if (apiSymbols_[i]->description()->equals(name)) { + if (apiSymbols_[i]->descriptionString()->equals(name)) { apiSymbols_[i] = newSymbol; found = true; break; @@ -596,7 +596,7 @@ SymbolRef* IsolateWrap::getApiSymbol(StringRef* name) { LWNODE_CALL_TRACE_ID(ISOWRAP); for (auto apiSymbols : apiSymbols_) { - if (apiSymbols->description()->equals(name)) { + if (apiSymbols->descriptionString()->equals(name)) { return apiSymbols; } } @@ -609,7 +609,7 @@ SymbolRef* IsolateWrap::createApiPrivateSymbol(StringRef* name) { auto newSymbol = SymbolRef::create(name); bool found = false; for (size_t i = 0; i < apiPrivateSymbols_.size(); i++) { - if (apiPrivateSymbols_[i]->description()->equals(name)) { + if (apiPrivateSymbols_[i]->descriptionString()->equals(name)) { apiPrivateSymbols_[i] = newSymbol; found = true; break; @@ -630,7 +630,7 @@ SymbolRef* IsolateWrap::getApiPrivateSymbol(StringRef* name) { LWNODE_CALL_TRACE_ID(ISOWRAP); for (auto apiPrivateSymbol : apiPrivateSymbols_) { - if (apiPrivateSymbol->description()->equals(name)) { + if (apiPrivateSymbol->descriptionString()->equals(name)) { return apiPrivateSymbol; } }