| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 | 5 |
| 6 // Defined when linking against shared lib on Windows. | 6 // Defined when linking against shared lib on Windows. |
| 7 #if defined(USING_V8_SHARED) && !defined(V8_SHARED) | 7 #if defined(USING_V8_SHARED) && !defined(V8_SHARED) |
| 8 #define V8_SHARED | 8 #define V8_SHARED |
| 9 #endif | 9 #endif |
| 10 | 10 |
| (...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 639 | 639 |
| 640 | 640 |
| 641 void Shell::Print(const v8::FunctionCallbackInfo<v8::Value>& args) { | 641 void Shell::Print(const v8::FunctionCallbackInfo<v8::Value>& args) { |
| 642 Write(args); | 642 Write(args); |
| 643 printf("\n"); | 643 printf("\n"); |
| 644 fflush(stdout); | 644 fflush(stdout); |
| 645 } | 645 } |
| 646 | 646 |
| 647 | 647 |
| 648 void Shell::Write(const v8::FunctionCallbackInfo<v8::Value>& args) { | 648 void Shell::Write(const v8::FunctionCallbackInfo<v8::Value>& args) { |
| 649 for (int i = 0; i < args.Length(); i++) { | 649 FOR_WITH_HANDLE_SCOPE( |
| 650 HandleScope handle_scope(args.GetIsolate()); | 650 args.GetIsolate(), int, i = 0, i, i < args.Length(), i++, { |
| 651 if (i != 0) { | 651 if (i != 0) { |
| 652 printf(" "); | 652 printf(" "); |
| 653 } | 653 } |
| 654 | 654 |
| 655 // Explicitly catch potential exceptions in toString(). | 655 // Explicitly catch potential exceptions in toString(). |
| 656 v8::TryCatch try_catch(args.GetIsolate()); | 656 v8::TryCatch try_catch(args.GetIsolate()); |
| 657 Local<Value> arg = args[i]; | 657 Local<Value> arg = args[i]; |
| 658 Local<String> str_obj; | 658 Local<String> str_obj; |
| 659 | 659 |
| 660 if (arg->IsSymbol()) { | 660 if (arg->IsSymbol()) { |
| 661 arg = Local<Symbol>::Cast(arg)->Name(); | 661 arg = Local<Symbol>::Cast(arg)->Name(); |
| 662 } | 662 } |
| 663 if (!arg->ToString(args.GetIsolate()->GetCurrentContext()) | 663 if (!arg->ToString(args.GetIsolate()->GetCurrentContext()) |
| 664 .ToLocal(&str_obj)) { | 664 .ToLocal(&str_obj)) { |
| 665 try_catch.ReThrow(); | 665 try_catch.ReThrow(); |
| 666 return; | 666 return; |
| 667 } | 667 } |
| 668 | 668 |
| 669 v8::String::Utf8Value str(str_obj); | 669 v8::String::Utf8Value str(str_obj); |
| 670 int n = static_cast<int>(fwrite(*str, sizeof(**str), str.length(), stdout)); | 670 int n = |
| 671 if (n != str.length()) { | 671 static_cast<int>(fwrite(*str, sizeof(**str), str.length(), stdout)); |
| 672 printf("Error in fwrite\n"); | 672 if (n != str.length()) { |
| 673 Exit(1); | 673 printf("Error in fwrite\n"); |
| 674 } | 674 Exit(1); |
| 675 } | 675 } |
| 676 }); |
| 676 } | 677 } |
| 677 | 678 |
| 678 | 679 |
| 679 void Shell::Read(const v8::FunctionCallbackInfo<v8::Value>& args) { | 680 void Shell::Read(const v8::FunctionCallbackInfo<v8::Value>& args) { |
| 680 String::Utf8Value file(args[0]); | 681 String::Utf8Value file(args[0]); |
| 681 if (*file == NULL) { | 682 if (*file == NULL) { |
| 682 Throw(args.GetIsolate(), "Error loading file"); | 683 Throw(args.GetIsolate(), "Error loading file"); |
| 683 return; | 684 return; |
| 684 } | 685 } |
| 685 Local<String> source = ReadFile(args.GetIsolate(), *file); | 686 Local<String> source = ReadFile(args.GetIsolate(), *file); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 722 return String::Concat( | 723 return String::Concat( |
| 723 accumulator, | 724 accumulator, |
| 724 String::NewFromUtf8(isolate, buffer, NewStringType::kNormal, | 725 String::NewFromUtf8(isolate, buffer, NewStringType::kNormal, |
| 725 length - 1).ToLocalChecked()); | 726 length - 1).ToLocalChecked()); |
| 726 } | 727 } |
| 727 } | 728 } |
| 728 } | 729 } |
| 729 | 730 |
| 730 | 731 |
| 731 void Shell::Load(const v8::FunctionCallbackInfo<v8::Value>& args) { | 732 void Shell::Load(const v8::FunctionCallbackInfo<v8::Value>& args) { |
| 732 for (int i = 0; i < args.Length(); i++) { | 733 FOR_WITH_HANDLE_SCOPE( |
| 733 HandleScope handle_scope(args.GetIsolate()); | 734 args.GetIsolate(), int, i = 0, i, i < args.Length(), i++, { |
| 734 String::Utf8Value file(args[i]); | 735 String::Utf8Value file(args[i]); |
| 735 if (*file == NULL) { | 736 if (*file == NULL) { |
| 736 Throw(args.GetIsolate(), "Error loading file"); | 737 Throw(args.GetIsolate(), "Error loading file"); |
| 737 return; | 738 return; |
| 738 } | 739 } |
| 739 Local<String> source = ReadFile(args.GetIsolate(), *file); | 740 Local<String> source = ReadFile(args.GetIsolate(), *file); |
| 740 if (source.IsEmpty()) { | 741 if (source.IsEmpty()) { |
| 741 Throw(args.GetIsolate(), "Error loading file"); | 742 Throw(args.GetIsolate(), "Error loading file"); |
| 742 return; | 743 return; |
| 743 } | 744 } |
| 744 if (!ExecuteString( | 745 if (!ExecuteString(args.GetIsolate(), source, |
| 745 args.GetIsolate(), source, | 746 String::NewFromUtf8(args.GetIsolate(), *file, |
| 746 String::NewFromUtf8(args.GetIsolate(), *file, | 747 NewStringType::kNormal) |
| 747 NewStringType::kNormal).ToLocalChecked(), | 748 .ToLocalChecked(), |
| 748 false, true)) { | 749 false, true)) { |
| 749 Throw(args.GetIsolate(), "Error executing file"); | 750 Throw(args.GetIsolate(), "Error executing file"); |
| 750 return; | 751 return; |
| 751 } | 752 } |
| 752 } | 753 }); |
| 753 } | 754 } |
| 754 | 755 |
| 755 | 756 |
| 756 #ifndef V8_SHARED | 757 #ifndef V8_SHARED |
| 757 void Shell::WorkerNew(const v8::FunctionCallbackInfo<v8::Value>& args) { | 758 void Shell::WorkerNew(const v8::FunctionCallbackInfo<v8::Value>& args) { |
| 758 Isolate* isolate = args.GetIsolate(); | 759 Isolate* isolate = args.GetIsolate(); |
| 759 HandleScope handle_scope(isolate); | 760 HandleScope handle_scope(isolate); |
| 760 if (args.Length() < 1 || !args[0]->IsString()) { | 761 if (args.Length() < 1 || !args[0]->IsString()) { |
| 761 Throw(args.GetIsolate(), "1st argument must be string"); | 762 Throw(args.GetIsolate(), "1st argument must be string"); |
| 762 return; | 763 return; |
| (...skipping 1777 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2540 } | 2541 } |
| 2541 | 2542 |
| 2542 } // namespace v8 | 2543 } // namespace v8 |
| 2543 | 2544 |
| 2544 | 2545 |
| 2545 #ifndef GOOGLE3 | 2546 #ifndef GOOGLE3 |
| 2546 int main(int argc, char* argv[]) { | 2547 int main(int argc, char* argv[]) { |
| 2547 return v8::Shell::Main(argc, argv); | 2548 return v8::Shell::Main(argc, argv); |
| 2548 } | 2549 } |
| 2549 #endif | 2550 #endif |
| OLD | NEW |