summaryrefslogtreecommitdiff
path: root/src/node.cc
diff options
context:
space:
mode:
authorJoyee Cheung <joyeec9h3@gmail.com>2019-07-06 02:43:27 +0800
committerJoyee Cheung <joyeec9h3@gmail.com>2019-07-10 01:32:25 +0800
commit581bddc656ff822978bc0a23c61c2f0c40328ddb (patch)
tree9cbee05fd46223141ee3099e3ed3562bf19e5b52 /src/node.cc
parentdb55c3cfc14775cda810efc58bb8d7c1b7c356c4 (diff)
downloadandroid-node-v8-581bddc656ff822978bc0a23c61c2f0c40328ddb.tar.gz
android-node-v8-581bddc656ff822978bc0a23c61c2f0c40328ddb.tar.bz2
android-node-v8-581bddc656ff822978bc0a23c61c2f0c40328ddb.zip
src: implement runtime option --no-node-snapshot for debugging
PR-URL: https://github.com/nodejs/node/pull/28567 Refs: https://github.com/nodejs/node/issues/28558 Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'src/node.cc')
-rw-r--r--src/node.cc25
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(&params,