Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/spawn_sync.cc')
-rw-r--r--src/spawn_sync.cc27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/spawn_sync.cc b/src/spawn_sync.cc
index 9b67a602c3e..73d821ae75d 100644
--- a/src/spawn_sync.cc
+++ b/src/spawn_sync.cc
@@ -32,6 +32,7 @@ namespace node {
using v8::Array;
using v8::Context;
+using v8::EscapableHandleScope;
using v8::FunctionCallbackInfo;
using v8::Handle;
using v8::HandleScope;
@@ -430,7 +431,7 @@ Environment* SyncProcessRunner::env() const {
Local<Object> SyncProcessRunner::Run(Local<Value> options) {
- HandleScope scope(env()->isolate());
+ EscapableHandleScope scope(env()->isolate());
assert(lifecycle_ == kUninitialized);
@@ -439,7 +440,7 @@ Local<Object> SyncProcessRunner::Run(Local<Value> options) {
Local<Object> result = BuildResultObject();
- return scope.Close(result);
+ return scope.Escape(result);
}
@@ -644,12 +645,14 @@ void SyncProcessRunner::SetPipeError(int pipe_error) {
Local<Object> SyncProcessRunner::BuildResultObject() {
- HandleScope scope(env()->isolate());
+ EscapableHandleScope scope(env()->isolate());
- Local<Object> js_result = Object::New();
+ Local<Object> js_result = Object::New(env()->isolate());
- if (GetError() != 0)
- js_result->Set(env()->error_string(), Integer::New(GetError()));
+ if (GetError() != 0) {
+ js_result->Set(env()->error_string(),
+ Integer::New(env()->isolate(), GetError()));
+ }
if (exit_status_ >= 0)
js_result->Set(env()->status_string(),
@@ -662,7 +665,7 @@ Local<Object> SyncProcessRunner::BuildResultObject() {
js_result->Set(env()->signal_string(),
String::NewFromUtf8(env()->isolate(), signo_string(term_signal_)));
else
- js_result->Set(env()->signal_string(), Null());
+ js_result->Set(env()->signal_string(), Null(env()->isolate()));
if (exit_status_ >= 0)
js_result->Set(env()->output_string(), BuildOutputArray());
@@ -672,7 +675,7 @@ Local<Object> SyncProcessRunner::BuildResultObject() {
js_result->Set(env()->pid_string(),
Number::New(env()->isolate(), uv_process_.pid));
- return scope.Close(js_result);
+ return scope.Escape(js_result);
}
@@ -680,18 +683,18 @@ Local<Array> SyncProcessRunner::BuildOutputArray() {
assert(lifecycle_ >= kInitialized);
assert(stdio_pipes_ != NULL);
- HandleScope scope(env()->isolate());
- Local<Array> js_output = Array::New(stdio_count_);
+ EscapableHandleScope scope(env()->isolate());
+ Local<Array> js_output = Array::New(env()->isolate(), stdio_count_);
for (uint32_t i = 0; i < stdio_count_; i++) {
SyncProcessStdioPipe* h = stdio_pipes_[i];
if (h != NULL && h->writable())
js_output->Set(i, h->GetOutputAsBuffer());
else
- js_output->Set(i, Null());
+ js_output->Set(i, Null(env()->isolate()));
}
- return scope.Close(js_output);
+ return scope.Escape(js_output);
}