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 management and memory cleanup.
    • Fixed worker script path resolution to properly handle relative paths from the calling context.
    • Added validation to detect missing worker scripts and report errors appropriately.
  • Chores

    • Updated CI/CD workflows to enable git submodule handling.
    • Restructured test infrastructure and removed legacy test suites.

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR updates CI workflows to enable git submodule checkout, refactors native memory management in ObjectManager for block and object disposal, adds worker script path resolution with validation, and reorganizes test infrastructure with large-scale test suite removal.

Changes

CI and Native Runtime Updates with Test Reorganization

Layer / File(s) Summary
Workflow submodule checkout
.github/workflows/npm_release.yml, .github/workflows/pull_request.yml
Both npm_release and pull_request workflows enable submodule checkout by adding submodules: true to actions/checkout in build and test jobs.
ObjectManager memory management fixes
NativeScript/runtime/ObjectManager.mm
Block wrapper cleanup changed to CFRelease when OwnsBlock() is true; Objective-C object teardown changed from [data dealloc] to [data release]; header ordering and formatting updated.
Worker script path resolution and validation
NativeScript/runtime/Worker.mm
Worker constructor resolves relative paths by deriving caller directory from stack trace and probing for scripts; startup validates script existence before execution, reporting missing scripts via onerror and returning early.
Test infrastructure reorganization
TestRunner/app/tests/index.js, TestRunner/app/shared, TestRunner/app/tests/shared/...
Test entrypoint paths changed from ./ to ../; subproject pointer updated; entire Import, Require (348 lines), Workers (578 lines), WeakRef, and RuntimeTests suites removed; test harness exports removed from shared/index.js.

🎯 3 (Moderate) | ⏱️ ~20 minutes

🐰 Submodules hop with glee,
Objects freed with symphony,
Workers find their way with care,
Tests removed with flair, so rare!
All restructured, fresh and light,
The code now dances pure and bright.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the three main changes: worker path resolution fixes, native object lifetime corrections, and migration to shared cross-runtime tests.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

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

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@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

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