Repository navigation
Commit 7fd30c1
committed
fix(module): unify IsLikelyOptionalModule and exclude explicit file extensions
* IsLikelyOptionalModule existed as two separate, independently-maintained
copies — one driving require() in ModuleInternal.mm, one driving
import() in ModuleInternalCallbacks.mm — that had already drifted out
of sync (only the ESM copy excluded "node:" specifiers). Unified into
a single definition declared in ModuleInternal.h so require() and
import() can't diverge again.
* The heuristic treated any bare specifier as "likely optional" purely
by the absence of a leading '.'/'~'/'/', so a real missing file
reference like require('foo.js') silently got a lazily-throwing
placeholder instead of failing at require()/import() time. This is
what broke "should throw error if cant find node module": 6e6adc8
correctly fixed the placeholder's script-injection bug, which
removed an accidental compile failure that used to (mis)produce the
throw this test depends on.
* Bare specifiers ending in a recognized file extension (.js/.mjs/.cjs/
.json/.node/.ts) are now excluded from the optional-module heuristic —
real npm package names don't carry a file extension — so require()/
import() throw immediately for those, matching Node's require()
semantics, without touching the extensionless case the placeholder
exists for.
* Added require()/import() parity tests pinning both sides of the
boundary: a dotted-but-not-extension name (lodash.debounce-shaped)
still defers to the placeholder; extension-qualified names — including
the real "video.js" package, called out explicitly as the known
trade-off — throw/reject immediately; node: specifiers via require()
always hard-fail.1 parent 260259c commit 7fd30c1
4 files changed
Lines changed: 86 additions & 16 deletions
File tree
- NativeScript/runtime
- TestRunner/app/tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
9 | 17 | | |
10 | 18 | | |
11 | 19 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
23 | 26 | | |
24 | | - | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
25 | 48 | | |
26 | 49 | | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
27 | 57 | | |
28 | 58 | | |
29 | 59 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
| 31 | + | |
| 32 | + | |
45 | 33 | | |
46 | 34 | | |
47 | 35 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
40 | 84 | | |
41 | 85 | | |
42 | 86 | | |
| |||
0 commit comments