@@ -49,12 +49,21 @@ TEST_F(EnvironmentTest, EnvironmentWithESMLoader) {
49
49
node::LoadEnvironment (
50
50
*env,
51
51
" const { SourceTextModule } = require('vm');"
52
- " try {"
53
- " new SourceTextModule('export const a = 1;');"
52
+ " (async () => {"
53
+ " const stmString = 'globalThis.importResult = import(\"\" )';"
54
+ " const m = new SourceTextModule(stmString, {"
55
+ " importModuleDynamically: (async () => {"
56
+ " const m = new SourceTextModule('');"
57
+ " await m.link(() => 0);"
58
+ " await m.evaluate();"
59
+ " return m.namespace;"
60
+ " }),"
61
+ " });"
62
+ " await m.link(() => 0);"
63
+ " await m.evaluate();"
64
+ " delete globalThis.importResult;"
54
65
" process.exit(0);"
55
- " } catch {"
56
- " process.exit(42);"
57
- " }" );
66
+ " })()" );
58
67
}
59
68
60
69
TEST_F (EnvironmentTest, EnvironmentWithNoESMLoader) {
@@ -67,19 +76,27 @@ TEST_F(EnvironmentTest, EnvironmentWithNoESMLoader) {
67
76
68
77
SetProcessExitHandler (*env, [&](node::Environment* env_, int exit_code) {
69
78
EXPECT_EQ (*env, env_);
70
- EXPECT_EQ (exit_code, 42 );
79
+ EXPECT_EQ (exit_code, 1 );
71
80
node::Stop (*env);
72
81
});
73
82
74
83
node::LoadEnvironment (
75
84
*env,
76
85
" const { SourceTextModule } = require('vm');"
77
- " try {"
78
- " new SourceTextModule('export const a = 1;');"
79
- " process.exit(0);"
80
- " } catch {"
81
- " process.exit(42);"
82
- " }" );
86
+ " (async () => {"
87
+ " const stmString = 'globalThis.importResult = import(\"\" )';"
88
+ " const m = new SourceTextModule(stmString, {"
89
+ " importModuleDynamically: (async () => {"
90
+ " const m = new SourceTextModule('');"
91
+ " await m.link(() => 0);"
92
+ " await m.evaluate();"
93
+ " return m.namespace;"
94
+ " }),"
95
+ " });"
96
+ " await m.link(() => 0);"
97
+ " await m.evaluate();"
98
+ " delete globalThis.importResult;"
99
+ " })()" );
83
100
}
84
101
85
102
TEST_F (EnvironmentTest, PreExecutionPreparation) {
0 commit comments