Add a write() command to d8. This is the same as the print() command, with the
exception that it does not add a new-line to the end. This half of what is required to make the Debian Language Shootout code work correctly: http://code.google.com/p/v8/issues/detail?id=354 BUG=354 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2666 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
8cc083d523
commit
395206b1df
16
src/d8.cc
16
src/d8.cc
@ -146,19 +146,22 @@ bool Shell::ExecuteString(Handle<String> source,
|
||||
|
||||
|
||||
Handle<Value> Shell::Print(const Arguments& args) {
|
||||
bool first = true;
|
||||
Handle<Value> val = Write(args);
|
||||
printf("\n");
|
||||
return val;
|
||||
}
|
||||
|
||||
|
||||
Handle<Value> Shell::Write(const Arguments& args) {
|
||||
for (int i = 0; i < args.Length(); i++) {
|
||||
HandleScope handle_scope;
|
||||
if (first) {
|
||||
first = false;
|
||||
} else {
|
||||
if (i != 0) {
|
||||
printf(" ");
|
||||
}
|
||||
v8::String::Utf8Value str(args[i]);
|
||||
const char* cstr = ToCString(str);
|
||||
printf("%s", cstr);
|
||||
}
|
||||
printf("\n");
|
||||
return Undefined();
|
||||
}
|
||||
|
||||
@ -399,6 +402,7 @@ void Shell::Initialize() {
|
||||
HandleScope scope;
|
||||
Handle<ObjectTemplate> global_template = ObjectTemplate::New();
|
||||
global_template->Set(String::New("print"), FunctionTemplate::New(Print));
|
||||
global_template->Set(String::New("write"), FunctionTemplate::New(Write));
|
||||
global_template->Set(String::New("read"), FunctionTemplate::New(Read));
|
||||
global_template->Set(String::New("load"), FunctionTemplate::New(Load));
|
||||
global_template->Set(String::New("quit"), FunctionTemplate::New(Quit));
|
||||
@ -588,6 +592,8 @@ void ShellThread::Run() {
|
||||
Handle<ObjectTemplate> global_template = ObjectTemplate::New();
|
||||
global_template->Set(String::New("print"),
|
||||
FunctionTemplate::New(Shell::Print));
|
||||
global_template->Set(String::New("write"),
|
||||
FunctionTemplate::New(Shell::Write));
|
||||
global_template->Set(String::New("read"),
|
||||
FunctionTemplate::New(Shell::Read));
|
||||
global_template->Set(String::New("load"),
|
||||
|
1
src/d8.h
1
src/d8.h
@ -138,6 +138,7 @@ class Shell: public i::AllStatic {
|
||||
#endif
|
||||
|
||||
static Handle<Value> Print(const Arguments& args);
|
||||
static Handle<Value> Write(const Arguments& args);
|
||||
static Handle<Value> Yield(const Arguments& args);
|
||||
static Handle<Value> Quit(const Arguments& args);
|
||||
static Handle<Value> Version(const Arguments& args);
|
||||
|
Loading…
Reference in New Issue
Block a user