-
Notifications
You must be signed in to change notification settings - Fork 29.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
src: remove usages on ScriptCompiler::CompileFunctionInContext #44198
src: remove usages on ScriptCompiler::CompileFunctionInContext #44198
Conversation
V8 APIs like HostImportModuleDynamicallyCallback and ScriptCompiler::CompileFunction is moving away from ScriptOrModule. Replaces ScriptCompiler::CompileFunctionInContext with ScriptCompiler::CompileFunction to remove the usages on the optional out param ScriptOrModule.
Review requested:
|
Fixes nodejs/node-v8#214 ? |
Why is it draft? |
I was verifying that the lifetime of CompiledFnEntry is still correct with this change. But I found that even without this change, the following script can cause an OOM quite quickly: const vm = require('vm');
function work() {
const context = vm.createContext({});
const fn = vm.compileFunction(`
import('foo').then(() => {});
`, [], {
parsingContext: context,
importModuleDynamically: async (specifier, fn, importAssertions) => {
const m = new vm.SyntheticModule(['x'], () => {
m.setExport('x', 1);
}, {
context,
});
await m.link(() => {});
await m.evaluate();
return m;
},
});
fn();
}
(function main() {
work()
// yielding to give chance to the evaluation of promises.
setTimeout(main, 1);
})(); The reference in the As this change is not worsening the condition, I'm marking it ready for review in order to land https://chromium-review.googlesource.com/c/v8/v8/+/3172764, with which we can get rid of the current id-based host-defined-options lookups. (Opened issue #44211 to track this problem) |
@nodejs/vm would you mind taking a look at this PR? thank you! |
V8 APIs like HostImportModuleDynamicallyCallback and ScriptCompiler::CompileFunction is moving away from ScriptOrModule. Replaces ScriptCompiler::CompileFunctionInContext with ScriptCompiler::CompileFunction to remove the usages on the optional out param ScriptOrModule. PR-URL: #44198 Fixes: nodejs/node-v8#214 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Joyee Cheung <[email protected]>
Landed in eefe553. Thank you for the review! |
V8 APIs like HostImportModuleDynamicallyCallback and ScriptCompiler::CompileFunction is moving away from ScriptOrModule. Replaces ScriptCompiler::CompileFunctionInContext with ScriptCompiler::CompileFunction to remove the usages on the optional out param ScriptOrModule. PR-URL: #44198 Fixes: nodejs/node-v8#214 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Joyee Cheung <[email protected]>
V8 APIs like HostImportModuleDynamicallyCallback and ScriptCompiler::CompileFunction is moving away from ScriptOrModule. Replaces ScriptCompiler::CompileFunctionInContext with ScriptCompiler::CompileFunction to remove the usages on the optional out param ScriptOrModule. PR-URL: #44198 Fixes: nodejs/node-v8#214 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Joyee Cheung <[email protected]>
V8 APIs like HostImportModuleDynamicallyCallback and ScriptCompiler::CompileFunction is moving away from ScriptOrModule. Replaces ScriptCompiler::CompileFunctionInContext with ScriptCompiler::CompileFunction to remove the usages on the optional out param ScriptOrModule. PR-URL: nodejs#44198 Fixes: nodejs/node-v8#214 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Joyee Cheung <[email protected]>
Usages of `v8::ScriptOrModule` were removed in nodejs#44198 so the flag can be disabled by default.
Usages of `v8::ScriptOrModule` were removed in #44198 so the flag can be disabled by default. PR-URL: #50616 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Richard Lau <[email protected]>
Usages of `v8::ScriptOrModule` were removed in #44198 so the flag can be disabled by default. PR-URL: #50616 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Richard Lau <[email protected]>
Usages of `v8::ScriptOrModule` were removed in nodejs#44198 so the flag can be disabled by default. PR-URL: nodejs#50616 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Richard Lau <[email protected]>
Usages of `v8::ScriptOrModule` were removed in nodejs#44198 so the flag can be disabled by default. PR-URL: nodejs#50616 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Richard Lau <[email protected]>
Usages of `v8::ScriptOrModule` were removed in #44198 so the flag can be disabled by default. PR-URL: #50616 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Richard Lau <[email protected]>
Usages of `v8::ScriptOrModule` were removed in #44198 so the flag can be disabled by default. PR-URL: #50616 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Richard Lau <[email protected]>
Usages of `v8::ScriptOrModule` were removed in #44198 so the flag can be disabled by default. PR-URL: #50616 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Richard Lau <[email protected]>
Usages of `v8::ScriptOrModule` were removed in #44198 so the flag can be disabled by default. PR-URL: #50616 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Richard Lau <[email protected]>
V8 APIs like HostImportModuleDynamicallyCallback and
ScriptCompiler::CompileFunction are moving away from ScriptOrModule.
Replaces ScriptCompiler::CompileFunctionInContext with
ScriptCompiler::CompileFunction to remove the usages on the optional
out param ScriptOrModule.
Fixes: nodejs/node-v8#214