Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Unified Diff: src/execution.cc

Issue 6233: Removed the print, load, quit and version extensions from the VM. Moved the p... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 12 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/execution.h ('k') | src/serialize.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/execution.cc
===================================================================
--- src/execution.cc (revision 404)
+++ src/execution.cc (working copy)
@@ -504,146 +504,6 @@
}
-// --- P r i n t E x t e n s i o n ---
-
-const char* PrintExtension::kSource = "native function print();";
-
-
-v8::Handle<v8::FunctionTemplate> PrintExtension::GetNativeFunction(
- v8::Handle<v8::String> str) {
- return v8::FunctionTemplate::New(PrintExtension::Print);
-}
-
-
-v8::Handle<v8::Value> PrintExtension::Print(const v8::Arguments& args) {
- for (int i = 0; i < args.Length(); i++) {
- if (i != 0) printf(" ");
- v8::HandleScope scope;
- v8::Handle<v8::Value> arg = args[i];
- v8::Handle<v8::String> string_obj = arg->ToString();
- if (string_obj.IsEmpty()) return string_obj;
- int length = string_obj->Length();
- uint16_t* string = NewArray<uint16_t>(length + 1);
- string_obj->Write(string);
- for (int j = 0; j < length; j++)
- printf("%lc", string[j]);
- DeleteArray(string);
- }
- printf("\n");
- return v8::Undefined();
-}
-
-
-static PrintExtension kPrintExtension;
-v8::DeclareExtension kPrintExtensionDeclaration(&kPrintExtension);
-
-
-// --- L o a d E x t e n s i o n ---
-
-const char* LoadExtension::kSource = "native function load();";
-
-
-v8::Handle<v8::FunctionTemplate> LoadExtension::GetNativeFunction(
- v8::Handle<v8::String> str) {
- return v8::FunctionTemplate::New(LoadExtension::Load);
-}
-
-
-v8::Handle<v8::Value> LoadExtension::Load(const v8::Arguments& args) {
- v8::Handle<v8::String> path = args[0]->ToString();
-
- // Create a handle for the result. Keep the result empty to be
- // useful as the return value in case of exceptions.
- v8::Handle<Value> result;
-
- if (path.IsEmpty()) return result; // Exception was thrown in ToString.
-
- // Check that the length of the file name is within bounds.
- static const int kMaxPathLength = 255;
- if (path->Length() > kMaxPathLength) {
- v8::Handle<v8::String> message = v8::String::New("Path name too long");
- v8::ThrowException(v8::Exception::RangeError(message));
- return result;
- }
-
- // Convert the JavaScript string path into a C string and read the
- // corresponding script from the file system.
- char path_buffer[kMaxPathLength + 1];
- path->WriteAscii(path_buffer);
- bool exists;
- Vector<const char> script = ReadFile(path_buffer, &exists, false);
-
- // Find the base file name from the path.
- char* file_name_buffer = path_buffer;
- for (char* p = path_buffer; *p; p++) {
- if (*p == '/' || *p == '\\') file_name_buffer = p + 1;
- }
-
- // Throw an exception in case the script couldn't be read.
- if (script.is_empty()) {
- static const char* kErrorPrefix = "Unable to read from file ";
- static const size_t kErrorPrefixLength = 25; // strlen is not constant
- ASSERT(strlen(kErrorPrefix) == kErrorPrefixLength);
- static const int kMaxErrorLength = kMaxPathLength + kErrorPrefixLength;
- EmbeddedVector<char, kMaxErrorLength + 1> error_buffer;
- OS::SNPrintF(error_buffer, "%s%s", kErrorPrefix, file_name_buffer);
- v8::Handle<v8::String> error =
- v8::String::New(error_buffer.start(), error_buffer.length());
- v8::ThrowException(v8::Exception::Error(error));
- return result;
- }
-
- // Convert the file name buffer into a script origin
- v8::ScriptOrigin origin =
- v8::ScriptOrigin(v8::String::New(file_name_buffer));
-
- // Compile and run script.
- v8::Handle<v8::String> source =
- v8::String::New(script.start(), script.length());
- v8::Handle<v8::Script> code =
- v8::Script::Compile(source, &origin);
-
- // Run the code if no exception occurred during the compilation. In
- // case of syntax errors, the code is empty and the exception is
- // scheduled and will be thrown when returning to JavaScript.
- if (!code.IsEmpty()) result = code->Run();
- script.Dispose();
- return result;
-}
-
-
-static LoadExtension kLoadExtension;
-v8::DeclareExtension kLoadExtensionDeclaration(&kLoadExtension);
-
-
-// --- Q u i t E x t e n s i o n ---
-
-const char* QuitExtension::kSource = "native function quit();";
-
-
-v8::Handle<v8::FunctionTemplate> QuitExtension::GetNativeFunction(
- v8::Handle<v8::String> str) {
- return v8::FunctionTemplate::New(QuitExtension::Quit);
-}
-
-
-v8::Handle<v8::Value> QuitExtension::Quit(const v8::Arguments& args) {
- exit(args.Length() == 0 ? 0 : args[0]->Int32Value());
- return v8::Undefined();
-}
-
-
-static QuitExtension kQuitExtension;
-v8::DeclareExtension kQuitExtensionDeclaration(&kQuitExtension);
-
-
-// --- V e r s i o n E x t e n s i o n ---
-
-static Extension kVersionExtension("v8/version",
- "function version(){ return 150; }");
-v8::DeclareExtension kVersionExtensionDeclaration(&kVersionExtension);
-
-
// --- G C E x t e n s i o n ---
const char* GCExtension::kSource = "native function gc();";
« no previous file with comments | « src/execution.h ('k') | src/serialize.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698