Author: [EMAIL PROTECTED]
Date: Mon Nov 10 09:27:49 2008
New Revision: 726

Modified:
    branches/bleeding_edge/src/d8.cc
    branches/bleeding_edge/src/flag-definitions.h
    branches/bleeding_edge/src/flags.cc
    branches/bleeding_edge/src/flags.h
    branches/bleeding_edge/test/cctest/test-flags.cc

Log:
Revert r724 (breaks debug mode tests).

Modified: branches/bleeding_edge/src/d8.cc
==============================================================================
--- branches/bleeding_edge/src/d8.cc    (original)
+++ branches/bleeding_edge/src/d8.cc    Mon Nov 10 09:27:49 2008
@@ -235,19 +235,6 @@
    utility_context_->SetSecurityToken(Undefined());
    Context::Scope utility_scope(utility_context_);

-  i::JSArguments js_args = i::FLAG_js_arguments;
-  i::Handle<i::FixedArray> arguments_array =
-      i::Factory::NewFixedArray(js_args.argc());
-  for (int j = 0; j < js_args.argc(); j++) {
-    i::Handle<i::String> arg =
-        i::Factory::NewStringFromUtf8(i::CStrVector(js_args[j]));
-    arguments_array->set(j, *arg);
-  }
-  i::Handle<i::JSArray> arguments_jsarray =
-      i::Factory::NewJSArrayWithElements(arguments_array);
-  global_template->Set(String::New("arguments"),
-                       Utils::ToLocal(arguments_jsarray));
-
    // Install the debugger object in the utility scope
    i::Debug::Load();
     
i::Debug::debug_context()->set_security_token(i::Heap::undefined_value());

Modified: branches/bleeding_edge/src/flag-definitions.h
==============================================================================
--- branches/bleeding_edge/src/flag-definitions.h       (original)
+++ branches/bleeding_edge/src/flag-definitions.h       Mon Nov 10 09:27:49 2008
@@ -69,27 +69,10 @@
  #error No mode supplied when including flags.defs
  #endif

-#ifdef FLAG_MODE_DECLARE
-// Structure used to hold a collection of arguments to the JavaScript code.
-struct JSArguments {
-public:
-  JSArguments();
-  JSArguments(int argc, const char** argv);
-  int argc() const;
-  const char** argv();
-  const char*& operator[](int idx);
-  JSArguments& operator=(JSArguments args);
-private:
-  int argc_;
-  const char** argv_;
-};
-#endif
-
  #define DEFINE_bool(nam, def, cmt) FLAG(BOOL, bool, nam, def, cmt)
  #define DEFINE_int(nam, def, cmt) FLAG(INT, int, nam, def, cmt)
  #define DEFINE_float(nam, def, cmt) FLAG(FLOAT, double, nam, def, cmt)
  #define DEFINE_string(nam, def, cmt) FLAG(STRING, const char*, nam, def,  
cmt)
-#define DEFINE_args(nam, def, cmt) FLAG(ARGS, JSArguments, nam, def, cmt)

  //
  // Flags in all modes.
@@ -219,8 +202,6 @@

  DEFINE_bool(help, false, "Print usage message, including flags, on  
console")
  DEFINE_bool(dump_counters, false, "Dump counters on exit")
-DEFINE_args(js_arguments, JSArguments(),
-            "Pass all remaining arguments to the script. Alias for  
\"--\".")

  //
  // Debug only flags

Modified: branches/bleeding_edge/src/flags.cc
==============================================================================
--- branches/bleeding_edge/src/flags.cc (original)
+++ branches/bleeding_edge/src/flags.cc Mon Nov 10 09:27:49 2008
@@ -48,7 +48,7 @@
  // to the actual flag, default value, comment, etc.  This is designed to  
be POD
  // initialized as to avoid requiring static constructors.
  struct Flag {
-  enum FlagType { TYPE_BOOL, TYPE_INT, TYPE_FLOAT, TYPE_STRING, TYPE_ARGS  
};
+  enum FlagType { TYPE_BOOL, TYPE_INT, TYPE_FLOAT, TYPE_STRING };

    FlagType type_;           // What type of flag, bool, int, or string.
    const char* name_;        // Name of the flag, ex "my_flag".
@@ -82,11 +82,6 @@
      return reinterpret_cast<const char**>(valptr_);
    }

-  JSArguments* args_variable() const {
-    ASSERT(type_ == TYPE_ARGS);
-    return reinterpret_cast<JSArguments*>(valptr_);
-  }
-
    bool bool_default() const {
      ASSERT(type_ == TYPE_BOOL);
      return *reinterpret_cast<const bool*>(defptr_);
@@ -107,11 +102,6 @@
      return *reinterpret_cast<const char* const *>(defptr_);
    }

-  JSArguments args_default() const {
-    ASSERT(type_ == TYPE_ARGS);
-    return *reinterpret_cast<const JSArguments*>(defptr_);
-  }
-
    // Compare this flag's current value against the default.
    bool IsDefault() const {
      switch (type_) {
@@ -121,15 +111,12 @@
          return *int_variable() == int_default();
        case TYPE_FLOAT:
          return *float_variable() == float_default();
-      case TYPE_STRING: {
+      case TYPE_STRING:
          const char* str1 = *string_variable();
          const char* str2 = string_default();
          if (str2 == NULL) return str1 == NULL;
          if (str1 == NULL) return str2 == NULL;
          return strcmp(str1, str2) == 0;
-      }
-      case TYPE_ARGS:
-        return args_variable()->argc() == 0;
      }
      UNREACHABLE();
      return true;
@@ -150,9 +137,6 @@
        case TYPE_STRING:
          *string_variable() = string_default();
          break;
-      case TYPE_ARGS:
-        *args_variable() = args_default();
-        break;
      }
    }
  };
@@ -173,7 +157,6 @@
      case Flag::TYPE_INT: return "int";
      case Flag::TYPE_FLOAT: return "float";
      case Flag::TYPE_STRING: return "string";
-    case Flag::TYPE_ARGS: return "arguments";
    }
    UNREACHABLE();
    return NULL;
@@ -195,7 +178,7 @@
        value = Vector<char>::New(20);
        OS::SNPrintF(value, "%f", *flag->float_variable());
        break;
-    case Flag::TYPE_STRING: {
+    case Flag::TYPE_STRING:
        const char* str = *flag->string_variable();
        if (str) {
          int length = strlen(str) + 1;
@@ -206,26 +189,6 @@
          OS::SNPrintF(value, "NULL");
        }
        break;
-    }
-    case Flag::TYPE_ARGS: {
-      JSArguments args = *flag->args_variable();
-      if (args.argc() == 0) {
-        value = Vector<char>::New(0);
-        break;
-      }
-      int len = args.argc() - 1;
-      for (int i = 0; i < args.argc(); i++) {
-        len += strlen(args[i]);
-      }
-      value = Vector<char>::New(len);
-      for (int i = 0; i < args.argc(); i++) {
-        if (i > 0) {
-          OS::SNPrintF(value, " ");
-        }
-        OS::SNPrintF(value, "%s", args[i]);
-      }
-      break;
-    }
    }
    ASSERT(!value.is_empty());
    return value.start();
@@ -276,14 +239,8 @@
    if (*arg == '-') {
      // find the begin of the flag name
      arg++;  // remove 1st '-'
-    if (*arg == '-') {
+    if (*arg == '-')
        arg++;  // remove 2nd '-'
-      if (arg[0] == '\0') {
-        const char* kJSArgumentsFlagName = "js_arguments";
-        *name = kJSArgumentsFlagName;
-        return;
-      }
-    }
      if (arg[0] == 'n' && arg[1] == 'o') {
        arg += 2;  // remove "no"
        *is_bool = true;
@@ -367,9 +324,7 @@
        }

        // if we still need a flag value, use the next argument if available
-      if (flag->type() != Flag::TYPE_BOOL &&
-          flag->type() != Flag::TYPE_ARGS &&
-          value == NULL) {
+      if (flag->type() != Flag::TYPE_BOOL && value == NULL) {
          if (i < *argc) {
            value = argv[i++];
          } else {
@@ -395,19 +350,6 @@
          case Flag::TYPE_STRING:
            *flag->string_variable() = value;
            break;
-        case Flag::TYPE_ARGS:
-          int start_pos = (value == NULL) ? i : i - 1;
-          int js_argc = *argc - start_pos;
-          const char** js_argv = new const char*[js_argc];
-          if (value != NULL) {
-            js_argv[0] = value;
-          }
-          for (int k = i; k < *argc; k++) {
-            js_argv[k - start_pos] = argv[k];
-          }
-          *flag->args_variable() = JSArguments(js_argc, js_argv);
-          i = *argc;  // Consume all arguments
-          break;
        }

        // handle errors
@@ -531,19 +473,5 @@
      DeleteArray(value);
    }
  }
-
-JSArguments::JSArguments()
-    : argc_(0), argv_(NULL) {}
-JSArguments::JSArguments(int argc, const char** argv)
-    : argc_(argc), argv_(argv) {}
-int JSArguments::argc() const { return argc_; }
-const char** JSArguments::argv() { return argv_; }
-const char*& JSArguments::operator[](int idx) { return argv_[idx]; }
-JSArguments& JSArguments::operator=(JSArguments args) {
-    argc_ = args.argc_;
-    argv_ = args.argv_;
-    return *this;
-}
-

  } }  // namespace v8::internal

Modified: branches/bleeding_edge/src/flags.h
==============================================================================
--- branches/bleeding_edge/src/flags.h  (original)
+++ branches/bleeding_edge/src/flags.h  Mon Nov 10 09:27:49 2008
@@ -35,7 +35,6 @@
  #define FLAG_MODE_DECLARE
  #include "flag-definitions.h"

-
  // The global list of all flags.
  class FlagList {
   public:
@@ -51,7 +50,7 @@
    // set, the flags and associated values are removed from (argc,
    // argv). Returns 0 if no error occurred. Otherwise, returns the argv
    // index > 0 for the argument where an error occurred. In that case,
-  // (argc, argv) will remain unchanged independent of the remove_flags
+  // (argc, argv) will remain unchanged indepdendent of the remove_flags
    // value, and no assumptions about flag settings should be made.
    //
    // The following syntax for flags is accepted (both '-' and '--' are ok):
@@ -60,7 +59,6 @@
    //   --noflag      (bool flags only)
    //   --flag=value  (non-bool flags only, no spaces around '=')
    //   --flag value  (non-bool flags only)
-  //   --            (equivalent to --js_arguments, captures all remaining  
args)
    static int SetFlagsFromCommandLine(int* argc, char** argv, bool  
remove_flags);

    // Set the flag values by parsing the string str. Splits string into argc

Modified: branches/bleeding_edge/test/cctest/test-flags.cc
==============================================================================
--- branches/bleeding_edge/test/cctest/test-flags.cc    (original)
+++ branches/bleeding_edge/test/cctest/test-flags.cc    Mon Nov 10 09:27:49  
2008
@@ -168,67 +168,3 @@
    const char* str = "       --testing-int-flag 0       
--testing_float_flag    ";
    CHECK_EQ(3, FlagList::SetFlagsFromString(str, strlen(str)));
  }
-
-
-TEST(FlagsJSArguments1) {
-  SetFlagsToDefault();
-  int argc = 6;
-  const char* argv[] = {"TestJSArgs1",
-                        "--testing-int-flag", "42",
-                        "--", "testing-float-flag", "7"};
-  CHECK_EQ(0, FlagList::SetFlagsFromCommandLine(&argc,
-                                                const_cast<char **>(argv),
-                                                true));
-  CHECK_EQ(42, FLAG_testing_int_flag);
-  CHECK_EQ(2.5, FLAG_testing_float_flag);
-  CHECK_EQ(2, FLAG_js_arguments.argc());
-  CHECK_EQ(0, strcmp(FLAG_js_arguments[0], "testing-float-flag"));
-  CHECK_EQ(0, strcmp(FLAG_js_arguments[1], "7"));
-  CHECK_EQ(1, argc);
-}
-
-
-TEST(FlagsJSArguments1b) {
-  SetFlagsToDefault();
-  const char* str = "--testing-int-flag 42 -- testing-float-flag 7";
-  CHECK_EQ(0, FlagList::SetFlagsFromString(str, strlen(str)));
-  CHECK_EQ(42, FLAG_testing_int_flag);
-  CHECK_EQ(2.5, FLAG_testing_float_flag);
-  CHECK_EQ(2, FLAG_js_arguments.argc());
-  CHECK_EQ(0, strcmp(FLAG_js_arguments[0], "testing-float-flag"));
-  CHECK_EQ(0, strcmp(FLAG_js_arguments[1], "7"));
-}
-
-
-TEST(FlagsJSArguments2) {
-  SetFlagsToDefault();
-  const char* str = "--testing-int-flag 42 --js-arguments  
testing-float-flag 7";
-  CHECK_EQ(0, FlagList::SetFlagsFromString(str, strlen(str)));
-  CHECK_EQ(42, FLAG_testing_int_flag);
-  CHECK_EQ(2.5, FLAG_testing_float_flag);
-  CHECK_EQ(2, FLAG_js_arguments.argc());
-  CHECK_EQ(0, strcmp(FLAG_js_arguments[0], "testing-float-flag"));
-  CHECK_EQ(0, strcmp(FLAG_js_arguments[1], "7"));
-}
-
-
-TEST(FlagsJSArguments3) {
-  SetFlagsToDefault();
-  const char* str = "--testing-int-flag 42  
--js-arguments=testing-float-flag 7";
-  CHECK_EQ(0, FlagList::SetFlagsFromString(str, strlen(str)));
-  CHECK_EQ(42, FLAG_testing_int_flag);
-  CHECK_EQ(2.5, FLAG_testing_float_flag);
-  CHECK_EQ(2, FLAG_js_arguments.argc());
-  CHECK_EQ(0, strcmp(FLAG_js_arguments[0], "testing-float-flag"));
-  CHECK_EQ(0, strcmp(FLAG_js_arguments[1], "7"));
-}
-
-
-TEST(FlagsJSArguments4) {
-  SetFlagsToDefault();
-  const char* str = "--testing-int-flag 42 --";
-  CHECK_EQ(0, FlagList::SetFlagsFromString(str, strlen(str)));
-  CHECK_EQ(42, FLAG_testing_int_flag);
-  CHECK_EQ(0, FLAG_js_arguments.argc());
-}
-

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to