// main function to run the lib/internal/main scripts and make sure that // the main function set in the snapshot building process takes precedence. validateFunction(callback, 'callback'); if (deserializeMainIsSet) { throw new ERR_DUPLICATE_STARTUP_SNAPSHOT_MAIN_FUNCTION(); } deserializeMainIsSet = true; _setDeserializeMainFunction(function deserializeMain() { const { prepareMainThreadExecution, markBootstrapComplete, } = require('internal/process/pre_execution'); // This should be in sync with run_main_module.js until we make that // a built-in main function. // TODO(joyeecheung): make a copy of argv[0] and insert it as argv[1]. prepareMainThreadExecution(false); markBootstrapComplete(); callback(data); }); } module.exports = { initializeCallbacks, runDeserializeCallbacks, throwIfBuildingSnapshot, // Exposed to require('v8').startupSnapshot namespace: { addDeserializeCallback, addSerializeCallback, setDeserializeMainFunction, isBuildingSnapshot, }, addAfterUserSerializeCallback, };