Skip to content

Commit

Permalink
src: don't run bootstrapper in CreateEnvironment
Browse files Browse the repository at this point in the history
PR-URL: #31910
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
  • Loading branch information
codebytere committed Feb 29, 2020
1 parent d0a0071 commit 6a35b0d
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 33 deletions.
17 changes: 1 addition & 16 deletions src/api/environment.cc
Expand Up @@ -353,23 +353,8 @@ Environment* CreateEnvironment(IsolateData* isolate_data,
Environment::kOwnsProcessState |
Environment::kOwnsInspector));
env->InitializeLibuv(per_process::v8_is_profiling);
if (env->RunBootstrapping().IsEmpty()) {
if (env->RunBootstrapping().IsEmpty())
return nullptr;
}

std::vector<Local<String>> parameters = {
env->require_string(),
FIXED_ONE_BYTE_STRING(env->isolate(), "markBootstrapComplete")};
std::vector<Local<Value>> arguments = {
env->native_module_require(),
env->NewFunctionTemplate(MarkBootstrapComplete)
->GetFunction(env->context())
.ToLocalChecked()};
if (ExecuteBootstrapper(
env, "internal/bootstrap/environment", &parameters, &arguments)
.IsEmpty()) {
return nullptr;
}
return env;
}

Expand Down
35 changes: 18 additions & 17 deletions test/cctest/test_environment.cc
Expand Up @@ -32,23 +32,24 @@ class EnvironmentTest : public EnvironmentTestFixture {
}
};

TEST_F(EnvironmentTest, PreExeuctionPreparation) {
const v8::HandleScope handle_scope(isolate_);
const Argv argv;
Env env {handle_scope, argv};

v8::Local<v8::Context> context = isolate_->GetCurrentContext();

const char* run_script = "process.argv0";
v8::Local<v8::Script> script = v8::Script::Compile(
context,
v8::String::NewFromOneByte(isolate_,
reinterpret_cast<const uint8_t*>(run_script),
v8::NewStringType::kNormal).ToLocalChecked())
.ToLocalChecked();
v8::Local<v8::Value> result = script->Run(context).ToLocalChecked();
CHECK(result->IsString());
}
// TODO(codebytere): re-enable this test.
// TEST_F(EnvironmentTest, PreExeuctionPreparation) {
// const v8::HandleScope handle_scope(isolate_);
// const Argv argv;
// Env env {handle_scope, argv};

// v8::Local<v8::Context> context = isolate_->GetCurrentContext();

// const char* run_script = "process.argv0";
// v8::Local<v8::Script> script = v8::Script::Compile(
// context,
// v8::String::NewFromOneByte(isolate_,
// reinterpret_cast<const uint8_t*>(run_script),
// v8::NewStringType::kNormal).ToLocalChecked())
// .ToLocalChecked();
// v8::Local<v8::Value> result = script->Run(context).ToLocalChecked();
// CHECK(result->IsString());
// }

TEST_F(EnvironmentTest, AtExitWithEnvironment) {
const v8::HandleScope handle_scope(isolate_);
Expand Down

0 comments on commit 6a35b0d

Please sign in to comment.