Skip to content

fix(worker): cross-runtime shared tests, worker path resolution parity, and native object lifetime fixes#387

Open
edusperoni wants to merge 3 commits into
mainfrom
fix/block-crashes
Open

fix(worker): cross-runtime shared tests, worker path resolution parity, and native object lifetime fixes#387
edusperoni wants to merge 3 commits into
mainfrom
fix/block-crashes

Conversation

@edusperoni

@edusperoni edusperoni commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

What

Three commits that should land as-is (see merge instructions below):

  1. fix: release our own blocks and release instead of dealloc data
    Two object-lifetime bugs in the runtime, both use-after-free classes:

    • __releaseNativeCounterpart called [data dealloc] directly, destroying natives that
      were still referenced elsewhere. The shared worker teardown test caught this: the
      NSNotificationCenter observer token (__NSObserver) returned by
      addObserverForName:object:queue:usingBlock: was force-deallocated while the main
      thread had an in-flight notification post referencing it →
      EXC_BAD_ACCESS in objc_release under _CFXRegistrationPost. Now it does a proper
      [data release]: instances solely owned by JS (alloc().init(), new) still
      deallocate immediately (the __releaseNativeCounterpart API tests assert this),
      shared natives survive until their remaining owners release them.
    • ObjectManager::DisposeValue raw-free()d block objects it did not own
      (blocks created from JS callbacks and handed to native code), bypassing the ObjC
      refcount and the block's dispose helper. Now: CFRelease only for blocks the wrapper
      owns (balancing the CFRetain taken when a native block is wrapped for JS — this also
      fixes a leak), and hands-off for native-owned blocks, whose JSBlock dispose helper
      runs when the last native reference goes away.
  2. fix(worker): worker path resolution parity with android and error handling for missing scripts

    • new Worker("./script.js") now resolves relative to the calling module's directory,
      matching the Android runtime and the legacy JSC iOS runtime (the documented behavior).
      If nothing exists there, it falls back to the historical app-root-relative resolution,
      so existing apps keep working.
    • A worker created with a non-existent script now reports through worker.onerror
      instead of silently never starting (closes the old TODO in the constructor).
  3. test: use shared tests across android and ios

    • Replaces the vendored, heavily-diverged copy of the common runtime tests
      (TestRunner/app/tests/shared) with a git submodule of
      common-runtime-tests-app
      mounted at TestRunner/app/shared — the same mount point android-runtime uses, and the
      location the tests' own path assertions require.
    • Moves Infrastructure/ from app/tests/ to app/ so worker scripts can reach
      ../../Infrastructure/timers, again matching the android test app layout.
    • Adds submodules: true to the checkout steps of the build and test jobs in
      pull_request.yml and npm_release.yml so CI fetches the submodule (this also covers
      the pre-existing libffi submodule).
    • The divergence work was upstreamed: the v8ios-only tests were ported with runtime
      guards (global.NSObject && !global.TNSRuntime) and merged to the shared repo's
      master, together with new Android worker tests and unified structured-clone tests.
      Android behavior is unchanged by the guards; both runtimes now run the same suite.

Why

The vendored test copy had drifted so far from upstream (path rewrites, deleted tests,
weakened assertions) that tests added on one runtime never ran on the other. Restoring the
shared suite immediately paid off: the upstream teardown test — which had never run on
v8ios — exposed the [data dealloc] use-after-free fixed in commit 1, and the upstream
worker tests exposed the path-resolution divergence fixed in commit 2.

Verification

Full TestRunner suite green on iPad Pro 13-inch (M4) simulator, iOS 18.5: 781 passed, 0
failed
, including the previously-crashing "no crash during or after runtime teardown on
iOS" stress test and the new structured-clone round-trip tests (circular references with
identity preservation, DataCloneError for functions, Date/RegExp/Map/Set/TypedArray/
BigInt/undefined).

⚠️ Merge instructions

Rebase-merge this PR on top of main — do NOT squash.

The three commits are deliberately separate: two independent runtime fixes and one test
restructure. Squashing would bury two unrelated bugfixes inside a 140+-file test-layout
change and make them impossible to revert or bisect individually.

Notes for reviewers

  • Local clones need git submodule update --init for TestRunner/app/shared
    (.gitmodules tracks the shared repo's master); CI does this automatically via
    submodules: true on checkout.
  • __releaseNativeCounterpart semantics change from "force dealloc" to "release our
    strong reference". The existing API tests still pass because JS-owned objects hit
    refcount 0 on that release; code relying on force-destroying a native that other native
    code still references was crashing anyway.
  • Worker path resolution prefers module-relative over app-root-relative when both exist —
    the fallback keeps old app-root-relative usage working.

Summary by CodeRabbit

  • Bug Fixes

    • Improved native object lifecycle and memory cleanup.
    • Worker startup now resolves relative worker script paths and reports missing scripts instead of executing them.
  • Chores

    • CI workflows updated to fetch git submodules and adjust checkout behavior.
  • Tests

    • Test harness restructured and many legacy/shared tests, fixtures, and test-side effects removed or consolidated.

This solves a crash when releasing blocks like when we close/terminate workers
@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: ece97548-a731-4a6e-a80c-f71a30efcdb3

📥 Commits

Reviewing files that changed from the base of the PR and between 2063601 and 41a989d.

📒 Files selected for processing (145)
  • .github/workflows/npm_release.yml
  • .github/workflows/pull_request.yml
  • .gitmodules
  • TestRunner/app/Infrastructure/Jasmine/jasmine-2.0.1/boot.js
  • TestRunner/app/Infrastructure/Jasmine/jasmine-2.0.1/jasmine.js
  • TestRunner/app/Infrastructure/Jasmine/jasmine-reporters/junit_reporter.js
  • TestRunner/app/Infrastructure/Jasmine/jasmine-reporters/terminal_reporter.js
  • TestRunner/app/Infrastructure/Jasmine/jasmine.d.ts
  • TestRunner/app/Infrastructure/simulator.js
  • TestRunner/app/Infrastructure/timers.js
  • TestRunner/app/Infrastructure/utf8.js
  • TestRunner/app/shared
  • TestRunner/app/tests/index.js
  • TestRunner/app/tests/shared/.gitattributes
  • TestRunner/app/tests/shared/Import/ImportCommonJS/file.js
  • TestRunner/app/tests/shared/Import/ImportCommonJS/index.js
  • TestRunner/app/tests/shared/Import/ImportJSON/data.json
  • TestRunner/app/tests/shared/Import/ImportJSON/index.js
  • TestRunner/app/tests/shared/Import/index.js
  • TestRunner/app/tests/shared/README.md
  • TestRunner/app/tests/shared/Require/AbsolutePath/dependency.js
  • TestRunner/app/tests/shared/Require/AbsolutePath/index.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/MyModule.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/index.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/mymodule/index.js
  • TestRunner/app/tests/shared/Require/ChangingRequireObject/dependency.js
  • TestRunner/app/tests/shared/Require/ChangingRequireObject/index.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/index.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency3.js
  • TestRunner/app/tests/shared/Require/CircularRequire/index.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency1.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency2.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency3.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/DirectoryWithIndexJson/index.js
  • TestRunner/app/tests/shared/Require/DirectoryWithIndexJson/module/index.json
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/dep1/dependency1.js
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/dep2/dep2-inner/index.js
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/index.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency1.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency2.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency3.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency4.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency5.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/index.js
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/index.js
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/module.js
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/module/submodule.js
  • TestRunner/app/tests/shared/Require/FileEndingWithCommentedLine/index.js
  • TestRunner/app/tests/shared/Require/FileWithDots/file.name.js
  • TestRunner/app/tests/shared/Require/FileWithDots/index.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency3.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency4.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency5.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/index.js
  • TestRunner/app/tests/shared/Require/GlobalIsDefined/module.js
  • TestRunner/app/tests/shared/Require/GlobalRequire/index.js
  • TestRunner/app/tests/shared/Require/ModuleErrorCache/index.js
  • TestRunner/app/tests/shared/Require/ModuleErrorCache/maybeThrow.js
  • TestRunner/app/tests/shared/Require/ModuleRequireFunction/module1.js
  • TestRunner/app/tests/shared/Require/ModuleRequireFunction/module2.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency1.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency2.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency3.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency4.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency5.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/index.js
  • TestRunner/app/tests/shared/Require/ModuleWith.js/index.js
  • TestRunner/app/tests/shared/Require/ModuleWithNullChar/index.js
  • TestRunner/app/tests/shared/Require/MultipleRequireOfAFile/index.js
  • TestRunner/app/tests/shared/Require/MultipleRequireOfAFile/module.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency1.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency2.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency3.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency4.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency5.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/index.js
  • TestRunner/app/tests/shared/Require/NotExistingFileRequire/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/io/io.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/io/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/io/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/io/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/io/io.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/io/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonMainPointsToDir/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonMainPointsToDir/subdirectory/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/io/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/io/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonTns/index.js
  • TestRunner/app/tests/shared/Require/RequireExtensions/dependency1.js
  • TestRunner/app/tests/shared/Require/RequireExtensions/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile/test.json
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile1/badJSON.json
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile1/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonFile/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonFile/test.json
  • TestRunner/app/tests/shared/Require/RequireModuleFolder/index.js
  • TestRunner/app/tests/shared/Require/RequireModuleFolderConflict/dependency.js
  • TestRunner/app/tests/shared/Require/RequireModuleFolderConflict/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency1.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency2.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency3/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency4.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency5/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/index.js
  • TestRunner/app/tests/shared/Require/RequireWithTildeSyntax/module.js
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/index.js
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/package.json
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/second.js
  • TestRunner/app/tests/shared/Require/RuntimeErrorInModule/dependency.js
  • TestRunner/app/tests/shared/Require/RuntimeErrorInModule/index.js
  • TestRunner/app/tests/shared/Require/SimpleGlobalObject/dependency.js
  • TestRunner/app/tests/shared/Require/SimpleGlobalObject/index.js
  • TestRunner/app/tests/shared/Require/SimpleRequire/dependency.js
  • TestRunner/app/tests/shared/Require/SimpleRequire/index.js
  • TestRunner/app/tests/shared/Require/SimpleRequireWithExports/dependency.js
  • TestRunner/app/tests/shared/Require/SimpleRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/SyntaxErrorInModule/dependency.js
  • TestRunner/app/tests/shared/Require/SyntaxErrorInModule/index.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/index.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/dependency1.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/dependency2.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/index.js
  • TestRunner/app/tests/shared/RuntimeTests.js
  • TestRunner/app/tests/shared/WeakRef.js
  • TestRunner/app/tests/shared/Workers/EvalWorker.js
  • TestRunner/app/tests/shared/Workers/WorkerInvalidSyntax.js
  • TestRunner/app/tests/shared/Workers/WorkerStressJSTest.js
  • TestRunner/app/tests/shared/Workers/index.js
  • TestRunner/app/tests/shared/index.js
  • TestRunner/app/tns_modules/tns-core-modules/shared/package.json
💤 Files with no reviewable changes (130)
  • TestRunner/app/tests/shared/Require/RequireModuleFolderConflict/dependency.js
  • TestRunner/app/tests/shared/Require/AbsolutePath/dependency.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency2.js
  • TestRunner/app/tests/shared/Require/RequireJsonFile/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/io/io.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/index.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency4.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/index.js
  • TestRunner/app/tests/shared/.gitattributes
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/io/package.json
  • TestRunner/app/tests/shared/Require/FileWithDots/index.js
  • TestRunner/app/tests/shared/Require/RequireExtensions/dependency1.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/index.js
  • TestRunner/app/tests/shared/Require/DirectoryWithIndexJson/index.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/mymodule/index.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/index.js
  • TestRunner/app/tests/shared/Require/MultipleRequireOfAFile/module.js
  • TestRunner/app/tests/shared/Import/ImportJSON/data.json
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency4.js
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/package.json
  • TestRunner/app/tests/shared/Require/SimpleGlobalObject/dependency.js
  • TestRunner/app/tests/shared/RuntimeTests.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile1/index.js
  • TestRunner/app/tests/shared/Require/ModuleRequireFunction/module2.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/io/index.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency4.js
  • TestRunner/app/tests/shared/Require/SyntaxErrorInModule/dependency.js
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/module.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/index.js
  • TestRunner/app/tests/shared/Require/RequireWithTildeSyntax/module.js
  • TestRunner/app/tests/shared/Require/SimpleRequire/dependency.js
  • TestRunner/app/tests/shared/Require/RuntimeErrorInModule/dependency.js
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/index.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/index.js
  • TestRunner/app/tests/shared/Import/ImportCommonJS/index.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency3.js
  • TestRunner/app/tests/shared/Require/MultipleRequireOfAFile/index.js
  • TestRunner/app/tests/shared/Require/SyntaxErrorInModule/index.js
  • TestRunner/app/tests/shared/Require/CircularRequire/index.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency2.js
  • TestRunner/app/tests/shared/Workers/WorkerStressJSTest.js
  • TestRunner/app/tests/shared/Require/PackageJsonMainPointsToDir/subdirectory/index.js
  • TestRunner/app/tests/shared/Require/FileWithDots/file.name.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency1.js
  • TestRunner/app/tests/shared/Import/ImportCommonJS/file.js
  • TestRunner/app/tests/shared/Require/ModuleErrorCache/maybeThrow.js
  • TestRunner/app/tests/shared/Require/ModuleWith.js/index.js
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/index.js
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/index.js
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/dep2/dep2-inner/index.js
  • TestRunner/app/tests/shared/Require/RequireExtensions/index.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency3.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency3/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/io/index.js
  • TestRunner/app/tests/shared/Workers/EvalWorker.js
  • TestRunner/app/tests/shared/Require/FileEndingWithCommentedLine/index.js
  • TestRunner/app/tests/shared/Require/DirectoryWithIndexJson/module/index.json
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/NotExistingFileRequire/index.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency3.js
  • TestRunner/app/tests/shared/Require/SimpleGlobalObject/index.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/index.js
  • TestRunner/app/tests/shared/Require/GlobalIsDefined/module.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile1/badJSON.json
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency3.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency1.js
  • TestRunner/app/tests/shared/README.md
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/dep1/dependency1.js
  • TestRunner/app/tests/shared/Require/ModuleRequireFunction/module1.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/io/io.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/index.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency1.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency5.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency5.js
  • TestRunner/app/tests/shared/Import/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/index.js
  • TestRunner/app/tests/shared/Require/ChangingRequireObject/dependency.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/index.js
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/second.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency1.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/GlobalRequire/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile/index.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency4.js
  • TestRunner/app/tests/shared/Require/ModuleErrorCache/index.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency5.js
  • TestRunner/app/tests/shared/Require/PackageJsonMainPointsToDir/package.json
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency3.js
  • TestRunner/app/tests/shared/Require/AbsolutePath/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/io/package.json
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/io/package.json
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonTns/index.js
  • TestRunner/app/tests/shared/Require/SimpleRequire/index.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency2.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/index.js
  • TestRunner/app/tests/shared/Require/SimpleRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/io/package.json
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/module/submodule.js
  • TestRunner/app/tests/shared/Require/RuntimeErrorInModule/index.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency1.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/dependency1.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency5/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency2.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/dependency2.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile/test.json
  • TestRunner/app/tests/shared/Workers/WorkerInvalidSyntax.js
  • TestRunner/app/tests/shared/Require/RequireJsonFile/test.json
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency2.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency5.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/MyModule.js
  • TestRunner/app/tests/shared/Require/RequireModuleFolderConflict/index.js
  • TestRunner/app/tests/shared/Require/RequireModuleFolder/index.js
  • TestRunner/app/tests/shared/Import/ImportJSON/index.js
  • TestRunner/app/tests/shared/Require/index.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency2.js
  • TestRunner/app/tests/shared/WeakRef.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency3.js
  • TestRunner/app/tests/shared/index.js
  • TestRunner/app/tests/shared/Workers/index.js
  • TestRunner/app/tests/shared/Require/ChangingRequireObject/index.js
  • TestRunner/app/tests/shared/Require/SimpleRequireWithExports/dependency.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency4.js
🚧 Files skipped from review as they are similar to previous changes (3)
  • TestRunner/app/shared
  • .github/workflows/npm_release.yml
  • TestRunner/app/tests/index.js

📝 Walkthrough

Walkthrough

Enables CI submodule checkout; adjusts ObjectManager block disposal and Objective‑C teardown; resolves and preflights relative Worker script paths; registers TestRunner shared submodule and updates test entry imports; removes many shared test fixtures and suites.

Changes

CI, Runtime, Worker, and Test Infra

Layer / File(s) Summary
Workflow submodule checkout
.github/workflows/npm_release.yml, .github/workflows/pull_request.yml
Adds submodules: true to actions/checkout in build and test jobs and ensures persist-credentials: false.
ObjectManager memory management and formatting
NativeScript/runtime/ObjectManager.mm
Header reflow and formatting; block wrapper disposal now uses CFRelease when wrapper owns the block; native counterpart teardown uses [data release] instead of [data dealloc].
Worker script path resolution and validation
NativeScript/runtime/Worker.mm
Constructor resolves relative .//../ worker paths from caller stack frame (probing path, path.js, path/index.js) with fallback to ApplicationPath; startup checks script existence and reports missing scripts to main thread via worker error plumbing.
Submodule registration and pointer update
.gitmodules, TestRunner/app/shared
Adds .gitmodules entry for TestRunner/app/shared and updates its recorded submodule commit pointer.
Test runner entry paths and shared test removals
TestRunner/app/tests/index.js, TestRunner/app/tests/shared/...
Updates test entry imports from ./ to ../ for infrastructure/shared harness; clears or removes many shared test fixtures and suites (Require/Import/Workers/WeakRef/Runtime and many helper files).

Estimated code review effort:
🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Suggested reviewers:
    • NathanWalker

"🐰
I hopped through submodules bright,
I nudged releases into light,
I taught workers paths to find,
I soothed objects freed and kind,
Tests trimmed tidy — now the garden's right."

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
.github/workflows/npm_release.yml (1)

27-30: 💤 Low value

Consider adding persist-credentials: false for defense-in-depth.

While not critical given the existing harden-runner step and limited artifact uploads, setting persist-credentials: false on all actions/checkout steps prevents GitHub credentials from persisting in the checked-out workspace, reducing the attack surface if credentials were to be inadvertently exposed.

🔒 Example for the build job checkout in npm_release.yml
       - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
         with:
           fetch-depth: 0
           submodules: true
+          persist-credentials: false

Apply the same pattern to all four checkout steps across both workflow files.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/npm_release.yml around lines 27 - 30, Add the
persist-credentials: false option to every actions/checkout step (e.g., the
checkout using actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd) so
credentials are not left in the workspace; locate each checkout block that
already sets fetch-depth and submodules and add persist-credentials: false, and
apply this change to all four checkout steps across the workflow files for
defense-in-depth.

Source: Linters/SAST tools

NativeScript/runtime/ObjectManager.mm (1)

108-121: 💤 Low value

Block ownership handling is correct; consider optional null guard.

The fix properly distinguishes between wrapper-owned blocks (needing CFRelease to balance the CFRetain from wrapping) and native-owned blocks (which must not be released here). This correctly addresses the prior use-after-free and leak issues described in the PR objectives.

One minor defensive consideration: if Block() were ever null when OwnsBlock() == true (e.g., due to a bug upstream), CFRelease(nullptr) is undefined. This is low probability given the invariant from Interop::GetResult, but a null check would be cheap insurance.

🛡️ Optional defensive null check
     case WrapperType::Block: {
       BlockWrapper* blockWrapper = static_cast<BlockWrapper*>(wrapper);
-      if (blockWrapper->OwnsBlock()) {
+      if (blockWrapper->OwnsBlock() && blockWrapper->Block() != nullptr) {
         // Balance the CFRetain taken when a native block was wrapped for JS
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@NativeScript/runtime/ObjectManager.mm` around lines 108 - 121, Add a
defensive null check before calling CFRelease in the WrapperType::Block case:
when handling BlockWrapper in the ObjectManager, check blockWrapper->OwnsBlock()
and also ensure blockWrapper->Block() is non-null before calling CFRelease to
avoid invoking CFRelease(nullptr); keep the existing ownership logic and
comments intact so wrappers that don't own the block still skip release.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @.github/workflows/npm_release.yml:
- Around line 27-30: Add the persist-credentials: false option to every
actions/checkout step (e.g., the checkout using
actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd) so credentials are
not left in the workspace; locate each checkout block that already sets
fetch-depth and submodules and add persist-credentials: false, and apply this
change to all four checkout steps across the workflow files for
defense-in-depth.

In `@NativeScript/runtime/ObjectManager.mm`:
- Around line 108-121: Add a defensive null check before calling CFRelease in
the WrapperType::Block case: when handling BlockWrapper in the ObjectManager,
check blockWrapper->OwnsBlock() and also ensure blockWrapper->Block() is
non-null before calling CFRelease to avoid invoking CFRelease(nullptr); keep the
existing ownership logic and comments intact so wrappers that don't own the
block still skip release.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: acdb70ac-e2b5-4866-a396-2c4995b5a78c

📥 Commits

Reviewing files that changed from the base of the PR and between 91ce499 and 3909b97.

📒 Files selected for processing (146)
  • .github/workflows/npm_release.yml
  • .github/workflows/pull_request.yml
  • NativeScript/runtime/ObjectManager.mm
  • NativeScript/runtime/Worker.mm
  • TestRunner/app/Infrastructure/Jasmine/jasmine-2.0.1/boot.js
  • TestRunner/app/Infrastructure/Jasmine/jasmine-2.0.1/jasmine.js
  • TestRunner/app/Infrastructure/Jasmine/jasmine-reporters/junit_reporter.js
  • TestRunner/app/Infrastructure/Jasmine/jasmine-reporters/terminal_reporter.js
  • TestRunner/app/Infrastructure/Jasmine/jasmine.d.ts
  • TestRunner/app/Infrastructure/simulator.js
  • TestRunner/app/Infrastructure/timers.js
  • TestRunner/app/Infrastructure/utf8.js
  • TestRunner/app/shared
  • TestRunner/app/tests/index.js
  • TestRunner/app/tests/shared/.gitattributes
  • TestRunner/app/tests/shared/Import/ImportCommonJS/file.js
  • TestRunner/app/tests/shared/Import/ImportCommonJS/index.js
  • TestRunner/app/tests/shared/Import/ImportJSON/data.json
  • TestRunner/app/tests/shared/Import/ImportJSON/index.js
  • TestRunner/app/tests/shared/Import/index.js
  • TestRunner/app/tests/shared/README.md
  • TestRunner/app/tests/shared/Require/AbsolutePath/dependency.js
  • TestRunner/app/tests/shared/Require/AbsolutePath/index.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/MyModule.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/index.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/mymodule/index.js
  • TestRunner/app/tests/shared/Require/ChangingRequireObject/dependency.js
  • TestRunner/app/tests/shared/Require/ChangingRequireObject/index.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/index.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency3.js
  • TestRunner/app/tests/shared/Require/CircularRequire/index.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency1.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency2.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency3.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/DirectoryWithIndexJson/index.js
  • TestRunner/app/tests/shared/Require/DirectoryWithIndexJson/module/index.json
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/dep1/dependency1.js
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/dep2/dep2-inner/index.js
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/index.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency1.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency2.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency3.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency4.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency5.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/index.js
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/index.js
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/module.js
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/module/submodule.js
  • TestRunner/app/tests/shared/Require/FileEndingWithCommentedLine/index.js
  • TestRunner/app/tests/shared/Require/FileWithDots/file.name.js
  • TestRunner/app/tests/shared/Require/FileWithDots/index.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency3.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency4.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency5.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/index.js
  • TestRunner/app/tests/shared/Require/GlobalIsDefined/module.js
  • TestRunner/app/tests/shared/Require/GlobalRequire/index.js
  • TestRunner/app/tests/shared/Require/ModuleErrorCache/index.js
  • TestRunner/app/tests/shared/Require/ModuleErrorCache/maybeThrow.js
  • TestRunner/app/tests/shared/Require/ModuleRequireFunction/module1.js
  • TestRunner/app/tests/shared/Require/ModuleRequireFunction/module2.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency1.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency2.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency3.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency4.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency5.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/index.js
  • TestRunner/app/tests/shared/Require/ModuleWith.js/index.js
  • TestRunner/app/tests/shared/Require/ModuleWithNullChar/index.js
  • TestRunner/app/tests/shared/Require/MultipleRequireOfAFile/index.js
  • TestRunner/app/tests/shared/Require/MultipleRequireOfAFile/module.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency1.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency2.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency3.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency4.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency5.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/index.js
  • TestRunner/app/tests/shared/Require/NotExistingFileRequire/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/io/io.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/io/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/io/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/io/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/io/io.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/io/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonMainPointsToDir/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonMainPointsToDir/subdirectory/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/io/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/io/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonTns/index.js
  • TestRunner/app/tests/shared/Require/RequireExtensions/dependency1.js
  • TestRunner/app/tests/shared/Require/RequireExtensions/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile/test.json
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile1/badJSON.json
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile1/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonFile/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonFile/test.json
  • TestRunner/app/tests/shared/Require/RequireModuleFolder/index.js
  • TestRunner/app/tests/shared/Require/RequireModuleFolderConflict/dependency.js
  • TestRunner/app/tests/shared/Require/RequireModuleFolderConflict/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency1.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency2.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency3/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency4.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency5/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/index.js
  • TestRunner/app/tests/shared/Require/RequireWithTildeSyntax/module.js
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/index.js
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/package.json
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/second.js
  • TestRunner/app/tests/shared/Require/RuntimeErrorInModule/dependency.js
  • TestRunner/app/tests/shared/Require/RuntimeErrorInModule/index.js
  • TestRunner/app/tests/shared/Require/SimpleGlobalObject/dependency.js
  • TestRunner/app/tests/shared/Require/SimpleGlobalObject/index.js
  • TestRunner/app/tests/shared/Require/SimpleRequire/dependency.js
  • TestRunner/app/tests/shared/Require/SimpleRequire/index.js
  • TestRunner/app/tests/shared/Require/SimpleRequireWithExports/dependency.js
  • TestRunner/app/tests/shared/Require/SimpleRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/SyntaxErrorInModule/dependency.js
  • TestRunner/app/tests/shared/Require/SyntaxErrorInModule/index.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/index.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/dependency1.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/dependency2.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/index.js
  • TestRunner/app/tests/shared/RuntimeTests.js
  • TestRunner/app/tests/shared/WeakRef.js
  • TestRunner/app/tests/shared/Workers/EvalWorker.js
  • TestRunner/app/tests/shared/Workers/WorkerInvalidSyntax.js
  • TestRunner/app/tests/shared/Workers/WorkerStressJSTest.js
  • TestRunner/app/tests/shared/Workers/index.js
  • TestRunner/app/tests/shared/index.js
  • TestRunner/app/tns_modules/tns-core-modules/shared/package.json
💤 Files with no reviewable changes (130)
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/index.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency3.js
  • TestRunner/app/tests/shared/Import/ImportJSON/data.json
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile1/badJSON.json
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/module/submodule.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/io/package.json
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/second.js
  • TestRunner/app/tests/shared/README.md
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency4.js
  • TestRunner/app/tests/shared/Require/AbsolutePath/index.js
  • TestRunner/app/tests/shared/Require/SimpleRequire/dependency.js
  • TestRunner/app/tests/shared/Require/SyntaxErrorInModule/dependency.js
  • TestRunner/app/tests/shared/Require/ChangingRequireObject/index.js
  • TestRunner/app/tests/shared/Require/GlobalIsDefined/module.js
  • TestRunner/app/tests/shared/Workers/EvalWorker.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/io/index.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/index.js
  • TestRunner/app/tests/shared/Import/ImportCommonJS/index.js
  • TestRunner/app/tests/shared/RuntimeTests.js
  • TestRunner/app/tests/shared/Require/DirectoryWithIndexJson/module/index.json
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/dep2/dep2-inner/index.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/io/io.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/FileWithDots/file.name.js
  • TestRunner/app/tests/shared/Require/CircularRequire/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency2.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile/index.js
  • TestRunner/app/tests/shared/Import/ImportJSON/index.js
  • TestRunner/app/tests/shared/Require/AbsolutePath/dependency.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency3.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency3.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/index.js
  • TestRunner/app/tests/shared/Require/NotExistingFileRequire/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/io/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonTns/index.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/SimpleGlobalObject/dependency.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency2.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency4.js
  • TestRunner/app/tests/shared/Require/GlobalRequire/index.js
  • TestRunner/app/tests/shared/Require/index.js
  • TestRunner/app/tests/shared/Require/SyntaxErrorInModule/index.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency4.js
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/module.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/index.js
  • TestRunner/app/tests/shared/Require/RequireExtensions/dependency1.js
  • TestRunner/app/tests/shared/Require/RequireModuleFolderConflict/index.js
  • TestRunner/app/tests/shared/Require/SimpleRequire/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonFile/index.js
  • TestRunner/app/tests/shared/Require/ModuleErrorCache/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency5/index.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/mymodule/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency4.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile/test.json
  • TestRunner/app/tests/shared/Require/PackageJsonMainPointsToDir/subdirectory/index.js
  • TestRunner/app/tests/shared/Require/ModuleErrorCache/maybeThrow.js
  • TestRunner/app/tests/shared/Workers/WorkerInvalidSyntax.js
  • TestRunner/app/tests/shared/Require/FileWithDots/index.js
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/io/io.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency1.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/index.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/MyModule.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency3.js
  • TestRunner/app/tests/shared/Require/ModuleRequireFunction/module1.js
  • TestRunner/app/tests/shared/.gitattributes
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/index.js
  • TestRunner/app/tests/shared/Require/SimpleRequireWithExports/dependency.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/RequireWithTildeSyntax/module.js
  • TestRunner/app/tests/shared/Require/FileEndingWithCommentedLine/index.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency2.js
  • TestRunner/app/tests/shared/Require/RuntimeErrorInModule/index.js
  • TestRunner/app/tests/shared/Require/RequireModuleFolderConflict/dependency.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile1/index.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency5.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency3.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency5.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency1.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency3.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/index.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency3/index.js
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/dep1/dependency1.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/RequireJsonFile/test.json
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency2.js
  • TestRunner/app/tests/shared/Require/RequirePriority/index.js
  • TestRunner/app/tests/shared/Require/MultipleRequireOfAFile/module.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/dependency2.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/index.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency5.js
  • TestRunner/app/tests/shared/index.js
  • TestRunner/app/tests/shared/Require/ModuleRequireFunction/module2.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency1.js
  • TestRunner/app/tests/shared/Import/index.js
  • TestRunner/app/tests/shared/Require/RuntimeErrorInModule/dependency.js
  • TestRunner/app/tests/shared/Require/SimpleRequireWithExports/index.js
  • TestRunner/app/tests/shared/WeakRef.js
  • TestRunner/app/tests/shared/Require/ChangingRequireObject/dependency.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/index.js
  • TestRunner/app/tests/shared/Require/RequireExtensions/index.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency1.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/io/package.json
  • TestRunner/app/tests/shared/Require/RequireModuleFolder/index.js
  • TestRunner/app/tests/shared/Workers/index.js
  • TestRunner/app/tests/shared/Require/DirectoryWithIndexJson/index.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency2.js
  • TestRunner/app/tests/shared/Require/PackageJsonMainPointsToDir/package.json
  • TestRunner/app/tests/shared/Import/ImportCommonJS/file.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/dependency1.js
  • TestRunner/app/tests/shared/Require/ModuleWith.js/index.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency1.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/io/package.json
  • TestRunner/app/tests/shared/Require/MultipleRequireOfAFile/index.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency4.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/index.js
  • TestRunner/app/tests/shared/Require/SimpleGlobalObject/index.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency5.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/io/package.json
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency1.js
  • TestRunner/app/tests/shared/Workers/WorkerStressJSTest.js
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/index.js
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/package.json

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/npm_release.yml:
- Around line 27-30: The checkout steps using actions/checkout@v6 (e.g. the
existing step with uses:
actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd and other checkout
occurrences in the workflows) currently set submodules: true but omit
persist-credentials; update each actions/checkout step in both workflows to add
persist-credentials: false (keeping submodules: true) so the GITHUB_TOKEN is not
persisted to later steps; ensure every checkout block that currently has
submodules: true gets the new persist-credentials: false entry.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: a0bd4314-f0c1-4496-a906-5876460597c7

📥 Commits

Reviewing files that changed from the base of the PR and between 3909b97 and 2063601.

📒 Files selected for processing (145)
  • .github/workflows/npm_release.yml
  • .github/workflows/pull_request.yml
  • .gitmodules
  • TestRunner/app/Infrastructure/Jasmine/jasmine-2.0.1/boot.js
  • TestRunner/app/Infrastructure/Jasmine/jasmine-2.0.1/jasmine.js
  • TestRunner/app/Infrastructure/Jasmine/jasmine-reporters/junit_reporter.js
  • TestRunner/app/Infrastructure/Jasmine/jasmine-reporters/terminal_reporter.js
  • TestRunner/app/Infrastructure/Jasmine/jasmine.d.ts
  • TestRunner/app/Infrastructure/simulator.js
  • TestRunner/app/Infrastructure/timers.js
  • TestRunner/app/Infrastructure/utf8.js
  • TestRunner/app/shared
  • TestRunner/app/tests/index.js
  • TestRunner/app/tests/shared/.gitattributes
  • TestRunner/app/tests/shared/Import/ImportCommonJS/file.js
  • TestRunner/app/tests/shared/Import/ImportCommonJS/index.js
  • TestRunner/app/tests/shared/Import/ImportJSON/data.json
  • TestRunner/app/tests/shared/Import/ImportJSON/index.js
  • TestRunner/app/tests/shared/Import/index.js
  • TestRunner/app/tests/shared/README.md
  • TestRunner/app/tests/shared/Require/AbsolutePath/dependency.js
  • TestRunner/app/tests/shared/Require/AbsolutePath/index.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/MyModule.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/index.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/mymodule/index.js
  • TestRunner/app/tests/shared/Require/ChangingRequireObject/dependency.js
  • TestRunner/app/tests/shared/Require/ChangingRequireObject/index.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/index.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency3.js
  • TestRunner/app/tests/shared/Require/CircularRequire/index.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency1.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency2.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency3.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/DirectoryWithIndexJson/index.js
  • TestRunner/app/tests/shared/Require/DirectoryWithIndexJson/module/index.json
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/dep1/dependency1.js
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/dep2/dep2-inner/index.js
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/index.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency1.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency2.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency3.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency4.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency5.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/index.js
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/index.js
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/module.js
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/module/submodule.js
  • TestRunner/app/tests/shared/Require/FileEndingWithCommentedLine/index.js
  • TestRunner/app/tests/shared/Require/FileWithDots/file.name.js
  • TestRunner/app/tests/shared/Require/FileWithDots/index.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency3.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency4.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency5.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/index.js
  • TestRunner/app/tests/shared/Require/GlobalIsDefined/module.js
  • TestRunner/app/tests/shared/Require/GlobalRequire/index.js
  • TestRunner/app/tests/shared/Require/ModuleErrorCache/index.js
  • TestRunner/app/tests/shared/Require/ModuleErrorCache/maybeThrow.js
  • TestRunner/app/tests/shared/Require/ModuleRequireFunction/module1.js
  • TestRunner/app/tests/shared/Require/ModuleRequireFunction/module2.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency1.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency2.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency3.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency4.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency5.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/index.js
  • TestRunner/app/tests/shared/Require/ModuleWith.js/index.js
  • TestRunner/app/tests/shared/Require/ModuleWithNullChar/index.js
  • TestRunner/app/tests/shared/Require/MultipleRequireOfAFile/index.js
  • TestRunner/app/tests/shared/Require/MultipleRequireOfAFile/module.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency1.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency2.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency3.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency4.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency5.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/index.js
  • TestRunner/app/tests/shared/Require/NotExistingFileRequire/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/io/io.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/io/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/io/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/io/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/io/io.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/io/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonMainPointsToDir/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonMainPointsToDir/subdirectory/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/io/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/io/package.json
  • TestRunner/app/tests/shared/Require/PackageJsonTns/index.js
  • TestRunner/app/tests/shared/Require/RequireExtensions/dependency1.js
  • TestRunner/app/tests/shared/Require/RequireExtensions/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile/test.json
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile1/badJSON.json
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile1/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonFile/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonFile/test.json
  • TestRunner/app/tests/shared/Require/RequireModuleFolder/index.js
  • TestRunner/app/tests/shared/Require/RequireModuleFolderConflict/dependency.js
  • TestRunner/app/tests/shared/Require/RequireModuleFolderConflict/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency1.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency2.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency3/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency4.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency5/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/index.js
  • TestRunner/app/tests/shared/Require/RequireWithTildeSyntax/module.js
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/index.js
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/package.json
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/second.js
  • TestRunner/app/tests/shared/Require/RuntimeErrorInModule/dependency.js
  • TestRunner/app/tests/shared/Require/RuntimeErrorInModule/index.js
  • TestRunner/app/tests/shared/Require/SimpleGlobalObject/dependency.js
  • TestRunner/app/tests/shared/Require/SimpleGlobalObject/index.js
  • TestRunner/app/tests/shared/Require/SimpleRequire/dependency.js
  • TestRunner/app/tests/shared/Require/SimpleRequire/index.js
  • TestRunner/app/tests/shared/Require/SimpleRequireWithExports/dependency.js
  • TestRunner/app/tests/shared/Require/SimpleRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/SyntaxErrorInModule/dependency.js
  • TestRunner/app/tests/shared/Require/SyntaxErrorInModule/index.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/index.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/dependency1.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/dependency2.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/index.js
  • TestRunner/app/tests/shared/RuntimeTests.js
  • TestRunner/app/tests/shared/WeakRef.js
  • TestRunner/app/tests/shared/Workers/EvalWorker.js
  • TestRunner/app/tests/shared/Workers/WorkerInvalidSyntax.js
  • TestRunner/app/tests/shared/Workers/WorkerStressJSTest.js
  • TestRunner/app/tests/shared/Workers/index.js
  • TestRunner/app/tests/shared/index.js
  • TestRunner/app/tns_modules/tns-core-modules/shared/package.json
💤 Files with no reviewable changes (130)
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency5.js
  • TestRunner/app/tests/shared/Require/DirectoryWithIndexJson/module/index.json
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/module/submodule.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency4.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency4.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile/test.json
  • TestRunner/app/tests/shared/.gitattributes
  • TestRunner/app/tests/shared/Require/CaseSensitive/MyModule.js
  • TestRunner/app/tests/shared/Require/SyntaxErrorInModule/dependency.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile1/index.js
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/dep2/dep2-inner/index.js
  • TestRunner/app/tests/shared/Require/NotExistingFileRequire/index.js
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/package.json
  • TestRunner/app/tests/shared/Import/ImportCommonJS/index.js
  • TestRunner/app/tests/shared/Require/MultipleRequireOfAFile/module.js
  • TestRunner/app/tests/shared/Require/ModuleWith.js/index.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency1.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/RequireModuleFolderConflict/dependency.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency3/index.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency3.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/io/io.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency2.js
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/index.js
  • TestRunner/app/tests/shared/Require/RequireJsonFile/test.json
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency2.js
  • TestRunner/app/tests/shared/Require/MultipleRequireOfAFile/index.js
  • TestRunner/app/tests/shared/Require/RequireExtensions/dependency1.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/index.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency1.js
  • TestRunner/app/tests/shared/Require/FileWithDots/file.name.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/index.js
  • TestRunner/app/tests/shared/Require/FileEndingWithCommentedLine/index.js
  • TestRunner/app/tests/shared/Require/ModuleRequireFunction/module2.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/io/package.json
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile1/badJSON.json
  • TestRunner/app/tests/shared/Require/SimpleRequire/dependency.js
  • TestRunner/app/tests/shared/Require/DirectoryWithIndexJson/index.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency5.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/index.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency3.js
  • TestRunner/app/tests/shared/Require/RequireModuleFolderConflict/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency5/index.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency4.js
  • TestRunner/app/tests/shared/Require/SimpleRequire/index.js
  • TestRunner/app/tests/shared/Require/RequireExtensions/index.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency5.js
  • TestRunner/app/tests/shared/Import/index.js
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/index.js
  • TestRunner/app/tests/shared/Require/GlobalRequire/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonMainPointsToDir/subdirectory/index.js
  • TestRunner/app/tests/shared/Import/ImportJSON/index.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency4.js
  • TestRunner/app/tests/shared/WeakRef.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/io/io.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/mymodule/index.js
  • TestRunner/app/tests/shared/Require/ModuleErrorCache/maybeThrow.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/index.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/dependency2.js
  • TestRunner/app/tests/shared/Require/AbsolutePath/dependency.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/index.js
  • TestRunner/app/tests/shared/Require/ResolveCanonicalPath/second.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/io/index.js
  • TestRunner/app/tests/shared/Require/RequirePriority/index.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency3.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency2.js
  • TestRunner/app/tests/shared/Require/PackageJsonSyntaxError/io/index.js
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/module.js
  • TestRunner/app/tests/shared/Require/SimpleGlobalObject/dependency.js
  • TestRunner/app/tests/shared/Require/RequireModuleFolder/index.js
  • TestRunner/app/tests/shared/Require/SimpleRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency2.js
  • TestRunner/app/tests/shared/Require/PackageJsonTns/index.js
  • TestRunner/app/tests/shared/Require/SimpleGlobalObject/index.js
  • TestRunner/app/tests/shared/Workers/WorkerStressJSTest.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/dependency2.js
  • TestRunner/app/tests/shared/README.md
  • TestRunner/app/tests/shared/Require/RequirePriority/dependency1.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/RequireJsonCorruptFile/index.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency3.js
  • TestRunner/app/tests/shared/Import/ImportJSON/data.json
  • TestRunner/app/tests/shared/Import/ImportCommonJS/file.js
  • TestRunner/app/tests/shared/Require/AbsolutePath/index.js
  • TestRunner/app/tests/shared/Require/RuntimeErrorInModule/dependency.js
  • TestRunner/app/tests/shared/Require/CircularRequire/index.js
  • TestRunner/app/tests/shared/Require/ModuleErrorCache/index.js
  • TestRunner/app/tests/shared/RuntimeTests.js
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency5.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/dependency2.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppNoMain/io/package.json
  • TestRunner/app/tests/shared/Require/RequireJsonFile/index.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency3.js
  • TestRunner/app/tests/shared/Require/PackageJsonAppWithoutExtension/io/package.json
  • TestRunner/app/tests/shared/Require/FiveLevelsOfRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/PackageJsonMainPointsToDir/package.json
  • TestRunner/app/tests/shared/Require/FileWithDots/index.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/index.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/dependency1.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/dependency1.js
  • TestRunner/app/tests/shared/Workers/WorkerInvalidSyntax.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequireWithExports/index.js
  • TestRunner/app/tests/shared/Require/SimpleRequireWithExports/dependency.js
  • TestRunner/app/tests/shared/Require/ModuleVariable/dependency3.js
  • TestRunner/app/tests/shared/Require/RuntimeErrorInModule/index.js
  • TestRunner/app/tests/shared/Workers/EvalWorker.js
  • TestRunner/app/tests/shared/Require/index.js
  • TestRunner/app/tests/shared/Require/SyntaxErrorInModule/index.js
  • TestRunner/app/tests/shared/Require/ChangingRequireObject/dependency.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency2.js
  • TestRunner/app/tests/shared/Require/RequireWithTildeSyntax/module.js
  • TestRunner/app/tests/shared/Require/ChangingRequireObject/index.js
  • TestRunner/app/tests/shared/Workers/index.js
  • TestRunner/app/tests/shared/Require/PackageJsonApp/io/package.json
  • TestRunner/app/tests/shared/Require/DirnameAndFilenameParameters/dep1/dependency1.js
  • TestRunner/app/tests/shared/Require/ExportsBubbling/dependency4.js
  • TestRunner/app/tests/shared/Require/CaseSensitive/index.js
  • TestRunner/app/tests/shared/Require/GlobalIsDefined/module.js
  • TestRunner/app/tests/shared/index.js
  • TestRunner/app/tests/shared/Require/NestedGlobalObject/index.js
  • TestRunner/app/tests/shared/Require/CircularRequireWithExports/dependency1.js
  • TestRunner/app/tests/shared/Require/FileAndDirectoryWithSameName/index.js
  • TestRunner/app/tests/shared/Require/CircularRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/CircularIndexRequire/dependency1.js
  • TestRunner/app/tests/shared/Require/TwoLevelsOfRequire/index.js
  • TestRunner/app/tests/shared/Require/ModuleRequireFunction/module1.js
🚧 Files skipped from review as they are similar to previous changes (2)
  • TestRunner/app/shared
  • TestRunner/app/tests/index.js

Comment thread .github/workflows/npm_release.yml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant