Index: src/d8-posix.cc |
diff --git a/src/d8-posix.cc b/src/d8-posix.cc |
index 424dbbb39308c286830bfecb4631f3f91bcc3187..81c15ae742e0c29744dbeb665485c21836e3859b 100644 |
--- a/src/d8-posix.cc |
+++ b/src/d8-posix.cc |
@@ -245,7 +245,8 @@ static bool GetTimeouts(const v8::FunctionCallbackInfo<v8::Value>& args, |
if (args[3]->IsNumber()) { |
*total_timeout = args[3]->Int32Value(); |
} else { |
- ThrowException(String::New("system: Argument 4 must be a number")); |
+ args.GetIsolate()->ThrowException( |
+ String::New("system: Argument 4 must be a number")); |
return false; |
} |
} |
@@ -253,7 +254,8 @@ static bool GetTimeouts(const v8::FunctionCallbackInfo<v8::Value>& args, |
if (args[2]->IsNumber()) { |
*read_timeout = args[2]->Int32Value(); |
} else { |
- ThrowException(String::New("system: Argument 3 must be a number")); |
+ args.GetIsolate()->ThrowException( |
+ String::New("system: Argument 3 must be a number")); |
return false; |
} |
} |
@@ -456,7 +458,8 @@ void Shell::System(const v8::FunctionCallbackInfo<v8::Value>& args) { |
Handle<Array> command_args; |
if (args.Length() > 1) { |
if (!args[1]->IsArray()) { |
- ThrowException(String::New("system: Argument 2 must be an array")); |
+ args.GetIsolate()->ThrowException( |
+ String::New("system: Argument 2 must be an array")); |
return; |
} |
command_args = Handle<Array>::Cast(args[1]); |
@@ -464,11 +467,13 @@ void Shell::System(const v8::FunctionCallbackInfo<v8::Value>& args) { |
command_args = Array::New(0); |
} |
if (command_args->Length() > ExecArgs::kMaxArgs) { |
- ThrowException(String::New("Too many arguments to system()")); |
+ args.GetIsolate()->ThrowException( |
+ String::New("Too many arguments to system()")); |
return; |
} |
if (args.Length() < 1) { |
- ThrowException(String::New("Too few arguments to system()")); |
+ args.GetIsolate()->ThrowException( |
+ String::New("Too few arguments to system()")); |
return; |
} |
@@ -483,11 +488,13 @@ void Shell::System(const v8::FunctionCallbackInfo<v8::Value>& args) { |
int stdout_fds[2]; |
if (pipe(exec_error_fds) != 0) { |
- ThrowException(String::New("pipe syscall failed.")); |
+ args.GetIsolate()->ThrowException( |
+ String::New("pipe syscall failed.")); |
return; |
} |
if (pipe(stdout_fds) != 0) { |
- ThrowException(String::New("pipe syscall failed.")); |
+ args.GetIsolate()->ThrowException( |
+ String::New("pipe syscall failed.")); |
return; |
} |
@@ -531,17 +538,17 @@ void Shell::System(const v8::FunctionCallbackInfo<v8::Value>& args) { |
void Shell::ChangeDirectory(const v8::FunctionCallbackInfo<v8::Value>& args) { |
if (args.Length() != 1) { |
const char* message = "chdir() takes one argument"; |
- ThrowException(String::New(message)); |
+ args.GetIsolate()->ThrowException(String::New(message)); |
return; |
} |
String::Utf8Value directory(args[0]); |
if (*directory == NULL) { |
const char* message = "os.chdir(): String conversion of argument failed."; |
- ThrowException(String::New(message)); |
+ args.GetIsolate()->ThrowException(String::New(message)); |
return; |
} |
if (chdir(*directory) != 0) { |
- ThrowException(String::New(strerror(errno))); |
+ args.GetIsolate()->ThrowException(String::New(strerror(errno))); |
return; |
} |
} |
@@ -550,7 +557,7 @@ void Shell::ChangeDirectory(const v8::FunctionCallbackInfo<v8::Value>& args) { |
void Shell::SetUMask(const v8::FunctionCallbackInfo<v8::Value>& args) { |
if (args.Length() != 1) { |
const char* message = "umask() takes one argument"; |
- ThrowException(String::New(message)); |
+ args.GetIsolate()->ThrowException(String::New(message)); |
return; |
} |
if (args[0]->IsNumber()) { |
@@ -560,7 +567,7 @@ void Shell::SetUMask(const v8::FunctionCallbackInfo<v8::Value>& args) { |
return; |
} else { |
const char* message = "umask() argument must be numeric"; |
- ThrowException(String::New(message)); |
+ args.GetIsolate()->ThrowException(String::New(message)); |
return; |
} |
} |
@@ -616,18 +623,18 @@ void Shell::MakeDirectory(const v8::FunctionCallbackInfo<v8::Value>& args) { |
mask = args[1]->Int32Value(); |
} else { |
const char* message = "mkdirp() second argument must be numeric"; |
- ThrowException(String::New(message)); |
+ args.GetIsolate()->ThrowException(String::New(message)); |
return; |
} |
} else if (args.Length() != 1) { |
const char* message = "mkdirp() takes one or two arguments"; |
- ThrowException(String::New(message)); |
+ args.GetIsolate()->ThrowException(String::New(message)); |
return; |
} |
String::Utf8Value directory(args[0]); |
if (*directory == NULL) { |
const char* message = "os.mkdirp(): String conversion of argument failed."; |
- ThrowException(String::New(message)); |
+ args.GetIsolate()->ThrowException(String::New(message)); |
return; |
} |
mkdirp(*directory, mask); |
@@ -637,13 +644,13 @@ void Shell::MakeDirectory(const v8::FunctionCallbackInfo<v8::Value>& args) { |
void Shell::RemoveDirectory(const v8::FunctionCallbackInfo<v8::Value>& args) { |
if (args.Length() != 1) { |
const char* message = "rmdir() takes one or two arguments"; |
- ThrowException(String::New(message)); |
+ args.GetIsolate()->ThrowException(String::New(message)); |
return; |
} |
String::Utf8Value directory(args[0]); |
if (*directory == NULL) { |
const char* message = "os.rmdir(): String conversion of argument failed."; |
- ThrowException(String::New(message)); |
+ args.GetIsolate()->ThrowException(String::New(message)); |
return; |
} |
rmdir(*directory); |
@@ -653,7 +660,7 @@ void Shell::RemoveDirectory(const v8::FunctionCallbackInfo<v8::Value>& args) { |
void Shell::SetEnvironment(const v8::FunctionCallbackInfo<v8::Value>& args) { |
if (args.Length() != 2) { |
const char* message = "setenv() takes two arguments"; |
- ThrowException(String::New(message)); |
+ args.GetIsolate()->ThrowException(String::New(message)); |
return; |
} |
String::Utf8Value var(args[0]); |
@@ -661,13 +668,13 @@ void Shell::SetEnvironment(const v8::FunctionCallbackInfo<v8::Value>& args) { |
if (*var == NULL) { |
const char* message = |
"os.setenv(): String conversion of variable name failed."; |
- ThrowException(String::New(message)); |
+ args.GetIsolate()->ThrowException(String::New(message)); |
return; |
} |
if (*value == NULL) { |
const char* message = |
"os.setenv(): String conversion of variable contents failed."; |
- ThrowException(String::New(message)); |
+ args.GetIsolate()->ThrowException(String::New(message)); |
return; |
} |
setenv(*var, *value, 1); |
@@ -677,14 +684,14 @@ void Shell::SetEnvironment(const v8::FunctionCallbackInfo<v8::Value>& args) { |
void Shell::UnsetEnvironment(const v8::FunctionCallbackInfo<v8::Value>& args) { |
if (args.Length() != 1) { |
const char* message = "unsetenv() takes one argument"; |
- ThrowException(String::New(message)); |
+ args.GetIsolate()->ThrowException(String::New(message)); |
return; |
} |
String::Utf8Value var(args[0]); |
if (*var == NULL) { |
const char* message = |
"os.setenv(): String conversion of variable name failed."; |
- ThrowException(String::New(message)); |
+ args.GetIsolate()->ThrowException(String::New(message)); |
return; |
} |
unsetenv(*var); |