Define our own Node entry

Chromium's V8 is using external startup snapshot file while Node does
not, so we have to use Chromium's gin for V8 initialization.
This commit is contained in:
Cheng Zhao 2015-03-12 17:03:16 -07:00
parent ceccf1b48a
commit c62c943bdb
7 changed files with 83 additions and 12 deletions

View file

@ -31,13 +31,9 @@
#include "atom/app/atom_library_main.h"
#endif // defined(OS_MACOSX)
#include "atom/app/node_main.h"
#include "base/i18n/icu_util.h"
// Declaration of node::Start.
namespace node {
int Start(int argc, char *argv[]);
}
#if defined(OS_WIN)
namespace {
@ -137,7 +133,7 @@ int APIENTRY wWinMain(HINSTANCE instance, HINSTANCE, wchar_t* cmd, int) {
}
// Now that conversion is done, we can finally start.
base::i18n::InitializeICU();
return node::Start(argc, argv);
return atom::NodeMain(argc, argv);
} else if (env->GetVar("ATOM_SHELL_INTERNAL_CRASH_SERVICE",
&crash_service_indicator) &&
crash_service_indicator == "1") {
@ -166,7 +162,7 @@ int main(int argc, const char* argv[]) {
char* node_indicator = getenv("ATOM_SHELL_INTERNAL_RUN_AS_NODE");
if (node_indicator != NULL && strcmp(node_indicator, "1") == 0) {
base::i18n::InitializeICU();
return node::Start(argc, const_cast<char**>(argv));
return atom::NodeMain(argc, const_cast<char**>(argv));
}
atom::AtomMainDelegate delegate;
@ -181,8 +177,7 @@ int main(int argc, const char* argv[]) {
int main(int argc, const char* argv[]) {
char* node_indicator = getenv("ATOM_SHELL_INTERNAL_RUN_AS_NODE");
if (node_indicator != NULL && strcmp(node_indicator, "1") == 0) {
AtomInitializeICU();
return node::Start(argc, const_cast<char**>(argv));
return AtomInitializeICUandStartNode(argc, const_cast<char**>(argv));
}
return AtomMain(argc, argv);