diff options
Diffstat (limited to 'src/node.cc')
-rw-r--r-- | src/node.cc | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/node.cc b/src/node.cc index 371e7c9f02..ea3bc5688e 100644 --- a/src/node.cc +++ b/src/node.cc @@ -1052,16 +1052,21 @@ int Start(int argc, char** argv) { { Isolate::CreateParams params; - // TODO(joyeecheung): collect external references and set it in - // params.external_references. - std::vector<intptr_t> external_references = { - reinterpret_cast<intptr_t>(nullptr)}; - v8::StartupData* blob = NodeMainInstance::GetEmbeddedSnapshotBlob(); - const std::vector<size_t>* indexes = - NodeMainInstance::GetIsolateDataIndexes(); - if (blob != nullptr) { - params.external_references = external_references.data(); - params.snapshot_blob = blob; + const std::vector<size_t>* indexes = nullptr; + std::vector<intptr_t> external_references; + + bool force_no_snapshot = + per_process::cli_options->per_isolate->no_node_snapshot; + if (!force_no_snapshot) { + v8::StartupData* blob = NodeMainInstance::GetEmbeddedSnapshotBlob(); + if (blob != nullptr) { + // TODO(joyeecheung): collect external references and set it in + // params.external_references. + external_references.push_back(reinterpret_cast<intptr_t>(nullptr)); + params.external_references = external_references.data(); + params.snapshot_blob = blob; + indexes = NodeMainInstance::GetIsolateDataIndexes(); + } } NodeMainInstance main_instance(¶ms, |