Fixed a number of build issues.

Fixed problem with missing I-cache flusing on ARM.

Changed space layout in memory management by splitting up code space into old data space and code space.

Added utf-8 conversion support to the API (issue 57).

Optimized repeated calls to eval with the same strings.  These repeated calls are common in web applications.

Added Xcode project file.

Optimized a couple of Array operation.

Fixed parser bug by checking for end-of-string when parsing break and continue (issue 35).

Fixed problem where asian characters were not categorized as letters.

Fixed bug that disallowed calling functions fetched from an array using a string as an array index (issue 32).

Fixed bug where the internal field count on object templates were sometimes ignored (issue 54).

Added -f option to the shell sample for compatibility with other engines (issue 18).

Added source info to TryCatches in the API.

Fixed problem where the seed for the random number generator was clipped in a double to unsigned int conversion.

Fixed bug where cons string symbols were sometimes converted to non-symbol flat strings during GC.

Fixed bug in error reporting when attempting to convert null to an object.


git-svn-id: http://v8.googlecode.com/svn/trunk@267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/test/cctest/SConscript b/test/cctest/SConscript
index cc59199..bd0e327 100644
--- a/test/cctest/SConscript
+++ b/test/cctest/SConscript
@@ -1,4 +1,4 @@
-# Copyright 2008 Google Inc.  All rights reserved.
+# Copyright 2008 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
 # met:
@@ -53,7 +53,7 @@
   cctest_files = context.GetRelevantSources(SOURCES)
   env = Environment()
   env.Replace(**context.flags['cctest'])
-  env['ENV'].update(**context.env_overrides)
+  context.ApplyEnvOverrides(env)
   # There seems to be a glitch in the way scons decides where to put
   # PDB files when compiling using MSVC so we specify it manually.
   # This should not affect any other platforms.
diff --git a/test/cctest/cctest.cc b/test/cctest/cctest.cc
index eef295f..6591f17 100644
--- a/test/cctest/cctest.cc
+++ b/test/cctest/cctest.cc
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -35,7 +35,8 @@
 CcTest* CcTest::last_ = NULL;
 
 
-CcTest::CcTest(TestFunction* callback, const char* file, const char* name)
+CcTest::CcTest(TestFunction* callback, const char* file,
+               const char* name, bool enabled)
     : callback_(callback), name_(name), prev_(last_) {
   // Find the base name of this test (const_cast required on Windows).
   char *basename = strrchr(const_cast<char *>(file), '/');
@@ -52,6 +53,7 @@
   if (extension) *extension = 0;
   // Install this test in the list of tests
   file_ = basename;
+  enabled_ = enabled;
   prev_ = last_;
   last_ = this;
 }
@@ -64,30 +66,6 @@
 }
 
 
-static int RunMatchingTests(CcTest* current, char* file_or_name) {
-  if (current == NULL) return 0;
-  int run_count = 0;
-  if (strcmp(current->file(), file_or_name) == 0
-      || strcmp(current->name(), file_or_name) == 0) {
-    current->Run();
-    run_count++;
-  }
-  return run_count + RunMatchingTests(current->prev(), file_or_name);
-}
-
-
-static int RunMatchingTests(CcTest* current, char* file, char* name) {
-  if (current == NULL) return 0;
-  int run_count = 0;
-  if (strcmp(current->file(), file) == 0
-      && strcmp(current->name(), name) == 0) {
-    current->Run();
-    run_count++;
-  }
-  return run_count + RunMatchingTests(current->prev(), file, name);
-}
-
-
 int main(int argc, char* argv[]) {
   v8::internal::FlagList::SetFlagsFromCommandLine(&argc, argv, true);
   int tests_run = 0;
@@ -97,6 +75,7 @@
     if (strcmp(arg, "--list") == 0) {
       PrintTestList(CcTest::last());
       print_run_count = false;
+
     } else {
       char* arg_copy = strdup(arg);
       char* testname = strchr(arg_copy, '/');
@@ -104,10 +83,32 @@
         // Split the string in two by nulling the slash and then run
         // exact matches.
         *testname = 0;
-        tests_run += RunMatchingTests(CcTest::last(), arg_copy, testname + 1);
+        char* file = arg_copy;
+        char* name = testname + 1;
+        CcTest* test = CcTest::last();
+        while (test != NULL) {
+          if (test->enabled()
+              && strcmp(test->file(), file) == 0
+              && strcmp(test->name(), name) == 0) {
+            test->Run();
+            tests_run++;
+          }
+          test = test->prev();
+        }
+
       } else {
         // Run all tests with the specified file or test name.
-        tests_run += RunMatchingTests(CcTest::last(), arg_copy);
+        char* file_or_name = arg_copy;
+        CcTest* test = CcTest::last();
+        while (test != NULL) {
+          if (test->enabled()
+              && (strcmp(test->file(), file_or_name) == 0
+                  || strcmp(test->name(), file_or_name) == 0)) {
+            test->Run();
+            tests_run++;
+          }
+          test = test->prev();
+        }
       }
       free(arg_copy);
     }
diff --git a/test/cctest/cctest.h b/test/cctest/cctest.h
index e3de881..8646479 100644
--- a/test/cctest/cctest.h
+++ b/test/cctest/cctest.h
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -31,7 +31,14 @@
 #ifndef TEST
 #define TEST(Name)                                                   \
   static void Test##Name();                                          \
-  CcTest register_test_##Name(Test##Name, __FILE__, #Name);          \
+  CcTest register_test_##Name(Test##Name, __FILE__, #Name, true);    \
+  static void Test##Name()
+#endif
+
+#ifndef DISABLED_TEST
+#define DISABLED_TEST(Name)                                          \
+  static void Test##Name();                                          \
+  CcTest register_test_##Name(Test##Name, __FILE__, #Name, false);   \
   static void Test##Name()
 #endif
 
@@ -39,17 +46,20 @@
 class CcTest {
  public:
   typedef void (TestFunction)();
-  CcTest(TestFunction* callback, const char* file, const char* name);
+  CcTest(TestFunction* callback, const char* file, const char* name,
+         bool enabled);
   void Run() { callback_(); }
   static int test_count();
   static CcTest* last() { return last_; }
   CcTest* prev() { return prev_; }
   const char* file() { return file_; }
   const char* name() { return name_; }
+  bool enabled() { return enabled_; }
  private:
   TestFunction* callback_;
   const char* file_;
   const char* name_;
+  bool enabled_;
   static CcTest* last_;
   CcTest* prev_;
 };
diff --git a/test/cctest/cctest.status b/test/cctest/cctest.status
index b222196..d7013a8 100644
--- a/test/cctest/cctest.status
+++ b/test/cctest/cctest.status
@@ -1,4 +1,4 @@
-# Copyright 2008 Google Inc.  All rights reserved.
+# Copyright 2008 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
 # met:
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
index 46126c4..f43a319 100644
--- a/test/cctest/test-api.cc
+++ b/test/cctest/test-api.cc
@@ -1,4 +1,4 @@
-// Copyright 2007-2008 Google Inc. All Rights Reserved.
+// Copyright 2007-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -461,10 +461,10 @@
     CHECK(source->IsExternal());
     CHECK_EQ(resource,
              static_cast<TestResource*>(source->GetExternalStringResource()));
-    v8::internal::Heap::CollectGarbage(0, v8::internal::OLD_SPACE);
+    v8::internal::Heap::CollectAllGarbage();
     CHECK_EQ(0, TestResource::dispose_count);
   }
-  v8::internal::Heap::CollectGarbage(0, v8::internal::OLD_SPACE);
+  v8::internal::Heap::CollectAllGarbage();
   CHECK_EQ(1, TestResource::dispose_count);
 }
 
@@ -481,10 +481,10 @@
     Local<Value> value = script->Run();
     CHECK(value->IsNumber());
     CHECK_EQ(7, value->Int32Value());
-    v8::internal::Heap::CollectGarbage(0, v8::internal::OLD_SPACE);
+    v8::internal::Heap::CollectAllGarbage();
     CHECK_EQ(0, TestAsciiResource::dispose_count);
   }
-  v8::internal::Heap::CollectGarbage(0, v8::internal::OLD_SPACE);
+  v8::internal::Heap::CollectAllGarbage();
   CHECK_EQ(1, TestAsciiResource::dispose_count);
 }
 
@@ -1427,9 +1427,9 @@
 
 // These tests run for a long time and prevent us from running tests
 // that come after them so they cannot run in parallel.
-TEST(OutOfMemory) {
+DISABLED_TEST(OutOfMemory) {
   // It's not possible to read a snapshot into a heap with different dimensions.
-  v8::internal::Snapshot::DisableInternal();
+  if (v8::internal::Snapshot::IsEnabled()) return;
   // Set heap limits.
   static const int K = 1024;
   v8::ResourceConstraints constraints;
@@ -1468,9 +1468,9 @@
 }
 
 
-TEST(OutOfMemoryNested) {
+DISABLED_TEST(OutOfMemoryNested) {
   // It's not possible to read a snapshot into a heap with different dimensions.
-  v8::internal::Snapshot::DisableInternal();
+  if (v8::internal::Snapshot::IsEnabled()) return;
   // Set heap limits.
   static const int K = 1024;
   v8::ResourceConstraints constraints;
@@ -1499,7 +1499,7 @@
 
 TEST(HugeConsStringOutOfMemory) {
   // It's not possible to read a snapshot into a heap with different dimensions.
-  v8::internal::Snapshot::DisableInternal();
+  if (v8::internal::Snapshot::IsEnabled()) return;
   v8::HandleScope scope;
   LocalContext context;
   // Set heap limits.
@@ -2455,7 +2455,7 @@
   CHECK_EQ(v8::Integer::New(3), args[2]);
   CHECK_EQ(v8::Undefined(), args[3]);
   v8::HandleScope scope;
-  i::Heap::CollectGarbage(0, i::OLD_SPACE);
+  i::Heap::CollectAllGarbage();
   return v8::Undefined();
 }
 
@@ -3959,6 +3959,11 @@
   CHECK(!try_catch.HasCaught());
   CHECK_EQ(49, value->Int32Value());
 
+  // test special case of call as function
+  value = Script::Compile(v8_str("[obj]['0'](45)"))->Run();
+  CHECK(!try_catch.HasCaught());
+  CHECK_EQ(45, value->Int32Value());
+
   value = Script::Compile(v8_str("obj.call = Function.prototype.call;"
                                  "obj.call(null, 87)"))->Run();
   CHECK(!try_catch.HasCaught());
@@ -4563,7 +4568,7 @@
 
 
 static v8::Handle<Value> ThrowInJS(const v8::Arguments& args) {
-  v8::Locker::AssertIsLocked();
+  CHECK(v8::Locker::IsLocked());
   ApiTestFuzzer::Fuzz();
   v8::Unlocker unlocker;
   const char* code = "throw 7;";
@@ -4586,7 +4591,7 @@
 
 
 static v8::Handle<Value> ThrowInJSNoCatch(const v8::Arguments& args) {
-  v8::Locker::AssertIsLocked();
+  CHECK(v8::Locker::IsLocked());
   ApiTestFuzzer::Fuzz();
   v8::Unlocker unlocker;
   const char* code = "throw 7;";
@@ -4604,7 +4609,7 @@
 // as part of the locking aggregation tests.
 TEST(NestedLockers) {
   v8::Locker locker;
-  v8::Locker::AssertIsLocked();
+  CHECK(v8::Locker::IsLocked());
   v8::HandleScope scope;
   LocalContext env;
   Local<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New(ThrowInJS);
@@ -4648,7 +4653,7 @@
   v8::Locker locker;
   {
     v8::Locker locker2;
-    v8::Locker::AssertIsLocked();
+    CHECK(v8::Locker::IsLocked());
   }
 }
 
@@ -4694,7 +4699,7 @@
 
 static void EnsureNoSurvivingGlobalObjects() {
   int count = 0;
-  v8::internal::Heap::CollectGarbage(0, v8::internal::OLD_SPACE);
+  v8::internal::Heap::CollectAllGarbage();
   v8::internal::HeapIterator it;
   while (it.has_next()) {
     v8::internal::HeapObject* object = it.next();
@@ -4716,6 +4721,8 @@
   // Regression test for issues 1139850 and 1174891.
 
   v8::internal::V8::Initialize(NULL);
+  if (v8::internal::Snapshot::IsEnabled()) return;
+
   EnsureNoSurvivingGlobalObjects();
 
   for (int i = 0; i < 5; i++) {
@@ -4757,6 +4764,7 @@
 
 THREADED_TEST(CheckForCrossContextObjectLiterals) {
   v8::internal::V8::Initialize(NULL);
+  if (v8::internal::Snapshot::IsEnabled()) return;
 
   const int nof = 2;
   const char* sources[nof] = {
@@ -4817,3 +4825,75 @@
     inner->Exit();
   }
 }
+
+
+// Regression test for issue 54, object templates with internal fields
+// but no accessors or interceptors did not get their internal field
+// count set on instances.
+THREADED_TEST(Regress54) {
+  v8::HandleScope outer;
+  LocalContext context;
+  static v8::Persistent<v8::ObjectTemplate> templ;
+  if (templ.IsEmpty()) {
+    v8::HandleScope inner;
+    v8::Handle<v8::ObjectTemplate> local = v8::ObjectTemplate::New();
+    local->SetInternalFieldCount(1);
+    templ = v8::Persistent<v8::ObjectTemplate>::New(inner.Close(local));
+  }
+  v8::Handle<v8::Object> result = templ->NewInstance();
+  CHECK_EQ(1, result->InternalFieldCount());
+}
+
+
+// If part of the threaded tests, this test makes ThreadingTest fail
+// on mac.
+TEST(CatchStackOverflow) {
+  v8::HandleScope scope;
+  LocalContext context;
+  v8::TryCatch try_catch;
+  v8::Handle<v8::Script> script = v8::Script::Compile(v8::String::New(
+    "function f() {"
+    "  return f();"
+    "}"
+    ""
+    "f();"));
+  v8::Handle<v8::Value> result = script->Run();
+  CHECK(result.IsEmpty());
+}
+
+
+THREADED_TEST(TryCatchSourceInfo) {
+  v8::HandleScope scope;
+  LocalContext context;
+  v8::Handle<v8::String> source = v8::String::New(
+      "function Foo() {\n"
+      "  return Bar();\n"
+      "}\n"
+      "\n"
+      "function Bar() {\n"
+      "  return Baz();\n"
+      "}\n"
+      "\n"
+      "function Baz() {\n"
+      "  throw 'nirk';\n"
+      "}\n"
+      "\n"
+      "Foo();\n");
+  v8::Handle<v8::Script> script =
+    v8::Script::Compile(source, v8::String::New("test.js"));
+  v8::TryCatch try_catch;
+  v8::Handle<v8::Value> result = script->Run();
+  CHECK(result.IsEmpty());
+  CHECK(try_catch.HasCaught());
+  v8::Handle<v8::Message> message = try_catch.Message();
+  CHECK(!message.IsEmpty());
+  CHECK_EQ(10, message->GetLineNumber());
+  CHECK_EQ(91, message->GetStartPosition());
+  CHECK_EQ(92, message->GetEndPosition());
+  CHECK_EQ(2, message->GetStartColumn());
+  CHECK_EQ(3, message->GetEndColumn());
+  v8::String::AsciiValue line(message->GetSourceLine());
+  CHECK_EQ("  throw 'nirk';", *line);
+  v8::String::AsciiValue name(message->GetScriptResourceName());
+  CHECK_EQ("test.js", *name);
+}
diff --git a/test/cctest/test-assembler-arm.cc b/test/cctest/test-assembler-arm.cc
index b6db2e3..a02441d 100644
--- a/test/cctest/test-assembler-arm.cc
+++ b/test/cctest/test-assembler-arm.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/cctest/test-assembler-ia32.cc b/test/cctest/test-assembler-ia32.cc
index 3fae62e..7097c64 100644
--- a/test/cctest/test-assembler-ia32.cc
+++ b/test/cctest/test-assembler-ia32.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/cctest/test-ast.cc b/test/cctest/test-ast.cc
index ac36eb1..7d10c82 100644
--- a/test/cctest/test-ast.cc
+++ b/test/cctest/test-ast.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/cctest/test-compiler.cc b/test/cctest/test-compiler.cc
index 140f2b9..dca36e2 100644
--- a/test/cctest/test-compiler.cc
+++ b/test/cctest/test-compiler.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/cctest/test-conversions.cc b/test/cctest/test-conversions.cc
index 283f12c..6c0b9a6 100644
--- a/test/cctest/test-conversions.cc
+++ b/test/cctest/test-conversions.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google, Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 
 #include <stdlib.h>
 
diff --git a/test/cctest/test-debug.cc b/test/cctest/test-debug.cc
index 3b1ffa7..89fcb36 100644
--- a/test/cctest/test-debug.cc
+++ b/test/cctest/test-debug.cc
@@ -1,4 +1,4 @@
-// Copyright 2007-2008 Google Inc. All Rights Reserved.
+// Copyright 2007-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -618,7 +618,7 @@
       Heap::CollectGarbage(0, v8::internal::NEW_SPACE);
     } else {
       // Mark sweep (and perhaps compact).
-      Heap::CollectGarbage(0, v8::internal::OLD_SPACE);
+      Heap::CollectAllGarbage();
     }
   }
 }
@@ -960,7 +960,7 @@
     CHECK_EQ(2 + i * 3, break_point_hit_count);
 
     // Mark sweep (and perhaps compact) and call function.
-    Heap::CollectGarbage(0, v8::internal::OLD_SPACE);
+    Heap::CollectAllGarbage();
     f->Call(recv, 0, NULL);
     CHECK_EQ(3 + i * 3, break_point_hit_count);
   }
@@ -2751,11 +2751,13 @@
 }
 
 
-// We match this prefix to a message to decide if it is a break message.
+// We match parts of the message to decide if it is a break message.
 bool IsBreakEventMessage(char *message) {
-  const char* break_template = "{\"type\":\"event\",\"event\":\"break\",";
-  // Is break_template a prefix of the message?
-  return !strncmp(message, break_template, strlen(break_template));
+  const char* type_event = "\"type\":\"event\"";
+  const char* event_break = "\"event\":\"break\"";
+  // Does the message contain both type:event and event:break?
+  return strstr(message, type_event) != NULL &&
+         strstr(message, event_break) != NULL;
 }
 
 
@@ -2990,9 +2992,6 @@
 };
 
 
-// We match this prefix to a message to decide if it is a break message.
-const char* break_template = "{\"type\":\"event\",\"event\":\"break\",";
-
 Barriers* breakpoints_barriers;
 
 static void BreakpointsMessageHandler(const uint16_t* message,
@@ -3004,7 +3003,7 @@
   fflush(stdout);
 
   // Is break_template a prefix of the message?
-  if (!strncmp(print_buffer, break_template, strlen(break_template))) {
+  if (IsBreakEventMessage(print_buffer)) {
     breakpoints_barriers->semaphore_1->Signal();
   }
 }
diff --git a/test/cctest/test-decls.cc b/test/cctest/test-decls.cc
index 4f89b26..e798fee 100644
--- a/test/cctest/test-decls.cc
+++ b/test/cctest/test-decls.cc
@@ -1,4 +1,4 @@
-// Copyright 2007-2008 Google Inc. All Rights Reserved.
+// Copyright 2007-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/cctest/test-disasm-arm.cc b/test/cctest/test-disasm-arm.cc
index 3e89d37..f1b43cd 100644
--- a/test/cctest/test-disasm-arm.cc
+++ b/test/cctest/test-disasm-arm.cc
@@ -1,4 +1,4 @@
-// Copyright 2007-2008 Google Inc. All Rights Reserved.
+// Copyright 2007-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/cctest/test-disasm-ia32.cc b/test/cctest/test-disasm-ia32.cc
index 7136a0c..dee4dae 100644
--- a/test/cctest/test-disasm-ia32.cc
+++ b/test/cctest/test-disasm-ia32.cc
@@ -1,4 +1,4 @@
-// Copyright 2007-2008 Google Inc. All Rights Reserved.
+// Copyright 2007-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/cctest/test-flags.cc b/test/cctest/test-flags.cc
index 7b1b988..b4827b6 100644
--- a/test/cctest/test-flags.cc
+++ b/test/cctest/test-flags.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/cctest/test-hashmap.cc b/test/cctest/test-hashmap.cc
index 47c2e8f..4918d5d 100644
--- a/test/cctest/test-hashmap.cc
+++ b/test/cctest/test-hashmap.cc
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/cctest/test-heap.cc b/test/cctest/test-heap.cc
index 269e3e9..4f4a127 100644
--- a/test/cctest/test-heap.cc
+++ b/test/cctest/test-heap.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google, Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 
 #include <stdlib.h>
 
@@ -176,7 +176,8 @@
   CHECK(Failure::RetryAfterGC(12, NEW_SPACE)->IsFailure());
   CHECK_EQ(12, Failure::RetryAfterGC(12, NEW_SPACE)->requested());
   CHECK_EQ(NEW_SPACE, Failure::RetryAfterGC(12, NEW_SPACE)->allocation_space());
-  CHECK_EQ(OLD_SPACE, Failure::RetryAfterGC(12, OLD_SPACE)->allocation_space());
+  CHECK_EQ(OLD_POINTER_SPACE,
+           Failure::RetryAfterGC(12, OLD_POINTER_SPACE)->allocation_space());
   CHECK(Failure::Exception()->IsFailure());
   CHECK(Smi::FromInt(Smi::kMinValue)->IsSmi());
   CHECK(Smi::FromInt(Smi::kMaxValue)->IsSmi());
@@ -353,7 +354,7 @@
   Handle<Object> h1 = GlobalHandles::Create(i);
   Handle<Object> h2 = GlobalHandles::Create(u);
 
-  CHECK(Heap::CollectGarbage(0, OLD_SPACE));
+  CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
   CHECK(Heap::CollectGarbage(0, NEW_SPACE));
   // Make sure the object is promoted.
 
@@ -363,7 +364,7 @@
   CHECK(!GlobalHandles::IsNearDeath(h1.location()));
   CHECK(!GlobalHandles::IsNearDeath(h2.location()));
 
-  CHECK(Heap::CollectGarbage(0, OLD_SPACE));
+  CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
 
   CHECK((*h1)->IsString());
 
@@ -400,7 +401,7 @@
   CHECK(!WeakPointerCleared);
 
   // Mark-compact treats weak reference properly.
-  CHECK(Heap::CollectGarbage(0, OLD_SPACE));
+  CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
 
   CHECK(WeakPointerCleared);
 }
@@ -751,11 +752,11 @@
   Handle<Object> objs[objs_count];
   int next_objs_index = 0;
 
-  // Allocate a JS array to OLD_SPACE and NEW_SPACE
+  // Allocate a JS array to OLD_POINTER_SPACE and NEW_SPACE
   objs[next_objs_index++] = Factory::NewJSArray(10);
   objs[next_objs_index++] = Factory::NewJSArray(10, TENURED);
 
-  // Allocate a small string to CODE_SPACE and NEW_SPACE
+  // Allocate a small string to OLD_DATA_SPACE and NEW_SPACE
   objs[next_objs_index++] =
       Factory::NewStringFromAscii(CStrVector("abcdefghij"));
   objs[next_objs_index++] =
diff --git a/test/cctest/test-lock.cc b/test/cctest/test-lock.cc
index bd8f759..37e3853 100644
--- a/test/cctest/test-lock.cc
+++ b/test/cctest/test-lock.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google, Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 //
 // Tests of the TokenLock class from lock.h
 
diff --git a/test/cctest/test-mark-compact.cc b/test/cctest/test-mark-compact.cc
index 70bcf4c..5d488df 100644
--- a/test/cctest/test-mark-compact.cc
+++ b/test/cctest/test-mark-compact.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -78,12 +78,12 @@
 TEST(Promotion) {
   // Test the situation that some objects in new space are promoted to the
   // old space
+  if (Snapshot::IsEnabled()) return;
 
   // Ensure that we get a compacting collection so that objects are promoted
   // from new space.
   FLAG_gc_global = true;
   FLAG_always_compact = true;
-  Snapshot::DisableInternal();
   Heap::ConfigureHeap(2*256*KB, 4*MB);
 
   InitializeVM();
@@ -102,15 +102,15 @@
   CHECK(Heap::InSpace(*array, NEW_SPACE));
 
   // Call the m-c collector, so array becomes an old object.
-  CHECK(Heap::CollectGarbage(0, OLD_SPACE));
+  CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
 
   // Array now sits in the old space
-  CHECK(Heap::InSpace(*array, OLD_SPACE));
+  CHECK(Heap::InSpace(*array, OLD_POINTER_SPACE));
 }
 
 
 TEST(NoPromotion) {
-  Snapshot::DisableInternal();
+  if (Snapshot::IsEnabled()) return;
   Heap::ConfigureHeap(2*256*KB, 4*MB);
 
   // Test the situation that some objects in new space are promoted to
@@ -120,7 +120,7 @@
   v8::HandleScope sc;
 
   // Do a mark compact GC to shrink the heap.
-  CHECK(Heap::CollectGarbage(0, OLD_SPACE));
+  CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
 
   // Allocate a big Fixed array in the new space.
   int size = (Heap::MaxHeapObjectSize() - Array::kHeaderSize) / kPointerSize;
@@ -142,7 +142,7 @@
   }
 
   // Call mark compact GC, and it should pass.
-  CHECK(Heap::CollectGarbage(0, OLD_SPACE));
+  CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
 
   // array should not be promoted because the old space is full.
   CHECK(Heap::InSpace(*array, NEW_SPACE));
@@ -154,7 +154,7 @@
 
   v8::HandleScope sc;
   // call mark-compact when heap is empty
-  CHECK(Heap::CollectGarbage(0, OLD_SPACE));
+  CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
 
   // keep allocating garbage in new space until it fails
   const int ARRAY_SIZE = 100;
@@ -190,7 +190,7 @@
   Top::context()->global()->SetProperty(func_name, function, NONE);
 
   JSObject* obj = JSObject::cast(Heap::AllocateJSObject(function));
-  CHECK(Heap::CollectGarbage(0, OLD_SPACE));
+  CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
 
   func_name = String::cast(Heap::LookupAsciiSymbol("theFunction"));
   CHECK(Top::context()->global()->HasLocalProperty(func_name));
@@ -204,7 +204,7 @@
   String* prop_name = String::cast(Heap::LookupAsciiSymbol("theSlot"));
   obj->SetProperty(prop_name, Smi::FromInt(23), NONE);
 
-  CHECK(Heap::CollectGarbage(0, OLD_SPACE));
+  CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
 
   obj_name = String::cast(Heap::LookupAsciiSymbol("theObject"));
   CHECK(Top::context()->global()->HasLocalProperty(obj_name));
@@ -242,7 +242,7 @@
   CHECK_EQ(0, gc_starts);
   CHECK_EQ(gc_ends, gc_starts);
 
-  CHECK(Heap::CollectGarbage(0, OLD_SPACE));
+  CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
   CHECK_EQ(1, gc_starts);
   CHECK_EQ(gc_ends, gc_starts);
 }
@@ -292,7 +292,7 @@
   GlobalHandles::AddToGroup(reinterpret_cast<void*>(2), g2s1.location());
   GlobalHandles::AddToGroup(reinterpret_cast<void*>(2), g2s2.location());
   // Do a full GC
-  CHECK(Heap::CollectGarbage(0, OLD_SPACE));
+  CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
 
   // All object should be alive.
   CHECK_EQ(0, NumberOfWeakCalls);
@@ -308,7 +308,7 @@
   GlobalHandles::AddToGroup(reinterpret_cast<void*>(2), g2s1.location());
   GlobalHandles::AddToGroup(reinterpret_cast<void*>(2), g2s2.location());
 
-  CHECK(Heap::CollectGarbage(0, OLD_SPACE));
+  CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
 
   // All objects should be gone. 5 global handles in total.
   CHECK_EQ(5, NumberOfWeakCalls);
diff --git a/test/cctest/test-platform-linux.cc b/test/cctest/test-platform-linux.cc
index 66973b3..e1a00e1 100644
--- a/test/cctest/test-platform-linux.cc
+++ b/test/cctest/test-platform-linux.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google, Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 //
 // Tests of the TokenLock class from lock.h
 
diff --git a/test/cctest/test-platform-macos.cc b/test/cctest/test-platform-macos.cc
index 2ac3a42..d80fa54 100644
--- a/test/cctest/test-platform-macos.cc
+++ b/test/cctest/test-platform-macos.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google, Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 //
 // Tests of the TokenLock class from lock.h
 
diff --git a/test/cctest/test-platform-nullos.cc b/test/cctest/test-platform-nullos.cc
index 2e91ec0..c0d6ae5 100644
--- a/test/cctest/test-platform-nullos.cc
+++ b/test/cctest/test-platform-nullos.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google, Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 //
 // Tests of the TokenLock class from lock.h
 
diff --git a/test/cctest/test-platform-win32.cc b/test/cctest/test-platform-win32.cc
index 9f83ce2..a5a6dd5 100644
--- a/test/cctest/test-platform-win32.cc
+++ b/test/cctest/test-platform-win32.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google, Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 //
 // Tests of the TokenLock class from lock.h
 
diff --git a/test/cctest/test-serialize.cc b/test/cctest/test-serialize.cc
index 24fac37..3072664 100644
--- a/test/cctest/test-serialize.cc
+++ b/test/cctest/test-serialize.cc
@@ -1,4 +1,4 @@
-// Copyright 2007-2008 Google Inc. All Rights Reserved.
+// Copyright 2007-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -191,14 +191,14 @@
 // bootstrapped heap.
 // (Smoke test.)
 TEST(Serialize) {
-  Snapshot::DisableInternal();
+  if (Snapshot::IsEnabled()) return;
   Serialize();
 }
 
 
 // Test that the heap isn't destroyed after a serialization.
 TEST(SerializeNondestructive) {
-  Snapshot::DisableInternal();
+  if (Snapshot::IsEnabled()) return;
   StatsTable::SetCounterFunction(counter_function);
   v8::HandleScope scope;
   v8::Persistent<v8::Context> env = v8::Context::New();
diff --git a/test/cctest/test-spaces.cc b/test/cctest/test-spaces.cc
index 4bd7c29..98bae69 100644
--- a/test/cctest/test-spaces.cc
+++ b/test/cctest/test-spaces.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -101,7 +101,7 @@
   CHECK(Heap::ConfigureHeapDefault());
   CHECK(MemoryAllocator::Setup(Heap::MaxCapacity()));
 
-  OldSpace faked_space(Heap::MaxCapacity(), OLD_SPACE, false);
+  OldSpace faked_space(Heap::MaxCapacity(), OLD_POINTER_SPACE, NOT_EXECUTABLE);
   int total_pages = 0;
   int requested = 2;
   int allocated;
@@ -159,8 +159,7 @@
 
   NewSpace* s = new NewSpace(Heap::InitialSemiSpaceSize(),
                              Heap::SemiSpaceSize(),
-                             NEW_SPACE,
-                             false);
+                             NEW_SPACE);
   CHECK(s != NULL);
 
   void* chunk =
@@ -187,7 +186,9 @@
   CHECK(Heap::ConfigureHeapDefault());
   CHECK(MemoryAllocator::Setup(Heap::MaxCapacity()));
 
-  OldSpace* s = new OldSpace(Heap::OldGenerationSize(), OLD_SPACE, false);
+  OldSpace* s = new OldSpace(Heap::OldGenerationSize(),
+                             OLD_POINTER_SPACE,
+                             NOT_EXECUTABLE);
   CHECK(s != NULL);
 
   void* chunk =
@@ -213,7 +214,7 @@
   CHECK(Heap::ConfigureHeapDefault());
   MemoryAllocator::Setup(Heap::MaxCapacity());
 
-  LargeObjectSpace* lo = new LargeObjectSpace(LO_SPACE, false);
+  LargeObjectSpace* lo = new LargeObjectSpace(LO_SPACE);
   CHECK(lo != NULL);
 
   CHECK(lo->Setup());
diff --git a/test/cctest/test-strings.cc b/test/cctest/test-strings.cc
index 46c0536..4484dd5 100644
--- a/test/cctest/test-strings.cc
+++ b/test/cctest/test-strings.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google, Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 
 // Check that we can traverse very deep stacks of ConsStrings using
 // StringInputBuffer.  Check that Get(int) works on very deep stacks
@@ -333,3 +333,44 @@
     TraverseFirst(flat_string, string, DEEP_ASCII_DEPTH);
   }
 }
+
+
+TEST(Utf8Conversion) {
+  // Smoke test for converting strings to utf-8.
+  InitializeVM();
+  v8::HandleScope handle_scope;
+  // A simple ascii string
+  const char* ascii_string = "abcdef12345";
+  int len = v8::String::New(ascii_string, strlen(ascii_string))->Utf8Length();
+  CHECK_EQ(strlen(ascii_string), len);
+  // A mixed ascii and non-ascii string
+  // U+02E4 -> CB A4
+  // U+0064 -> 64
+  // U+12E4 -> E1 8B A4
+  // U+0030 -> 30
+  // U+3045 -> E3 81 85
+  const uint16_t mixed_string[] = {0x02E4, 0x0064, 0x12E4, 0x0030, 0x3045};
+  // The characters we expect to be output
+  const unsigned char as_utf8[11] = {0xCB, 0xA4, 0x64, 0xE1, 0x8B, 0xA4, 0x30,
+      0xE3, 0x81, 0x85, 0x00};
+  // The number of bytes expected to be written for each length
+  const int lengths[12] = {0, 0, 2, 3, 3, 3, 6, 7, 7, 7, 10, 11};
+  v8::Handle<v8::String> mixed = v8::String::New(mixed_string, 5);
+  CHECK_EQ(10, mixed->Utf8Length());
+  // Try encoding the string with all capacities
+  char buffer[11];
+  const char kNoChar = static_cast<char>(-1);
+  for (int i = 0; i <= 11; i++) {
+    // Clear the buffer before reusing it
+    for (int j = 0; j < 11; j++)
+      buffer[j] = kNoChar;
+    int written = mixed->WriteUtf8(buffer, i);
+    CHECK_EQ(lengths[i], written);
+    // Check that the contents are correct
+    for (int j = 0; j < lengths[i]; j++)
+      CHECK_EQ(as_utf8[j], static_cast<unsigned char>(buffer[j]));
+    // Check that the rest of the buffer hasn't been touched
+    for (int j = lengths[i]; j < 11; j++)
+      CHECK_EQ(kNoChar, buffer[j]);
+  }
+}
diff --git a/test/cctest/test-utils.cc b/test/cctest/test-utils.cc
index bb3b33b..8f06f0f 100644
--- a/test/cctest/test-utils.cc
+++ b/test/cctest/test-utils.cc
@@ -1,4 +1,4 @@
-// Copyright 2006-2008 Google Inc. All Rights Reserved.
+// Copyright 2006-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/cctest/testcfg.py b/test/cctest/testcfg.py
index 2002c62..08226aa 100644
--- a/test/cctest/testcfg.py
+++ b/test/cctest/testcfg.py
@@ -1,4 +1,4 @@
-# Copyright 2008 Google Inc.  All rights reserved.
+# Copyright 2008 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
 # met:
diff --git a/test/mjsunit/apply.js b/test/mjsunit/apply.js
index fcdaff5..1d9dde9 100644
--- a/test/mjsunit/apply.js
+++ b/test/mjsunit/apply.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/arguments-call-apply.js b/test/mjsunit/arguments-call-apply.js
index a7b434a..a5cadf5 100644
--- a/test/mjsunit/arguments-call-apply.js
+++ b/test/mjsunit/arguments-call-apply.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/arguments-enum.js b/test/mjsunit/arguments-enum.js
index 8fb41cc..f76240f 100644
--- a/test/mjsunit/arguments-enum.js
+++ b/test/mjsunit/arguments-enum.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/arguments-indirect.js b/test/mjsunit/arguments-indirect.js
index 8e85807..2d37027 100644
--- a/test/mjsunit/arguments-indirect.js
+++ b/test/mjsunit/arguments-indirect.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/arguments-opt.js b/test/mjsunit/arguments-opt.js
index 1b687b9..c74fc75 100644
--- a/test/mjsunit/arguments-opt.js
+++ b/test/mjsunit/arguments-opt.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/arguments.js b/test/mjsunit/arguments.js
index dd80d20..0302739 100644
--- a/test/mjsunit/arguments.js
+++ b/test/mjsunit/arguments.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/array-concat.js b/test/mjsunit/array-concat.js
index 0523807..bb8c570 100644
--- a/test/mjsunit/array-concat.js
+++ b/test/mjsunit/array-concat.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/array-functions-prototype.js b/test/mjsunit/array-functions-prototype.js
index 5b2a9cb..ea0dc61 100644
--- a/test/mjsunit/array-functions-prototype.js
+++ b/test/mjsunit/array-functions-prototype.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/array-indexing.js b/test/mjsunit/array-indexing.js
index 910cf1c..2322c54 100644
--- a/test/mjsunit/array-indexing.js
+++ b/test/mjsunit/array-indexing.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/array-iteration.js b/test/mjsunit/array-iteration.js
index 9fb72b8..f11b51c 100644
--- a/test/mjsunit/array-iteration.js
+++ b/test/mjsunit/array-iteration.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/array-join.js b/test/mjsunit/array-join.js
index c979a63..c66e462 100644
--- a/test/mjsunit/array-join.js
+++ b/test/mjsunit/array-join.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/array-length.js b/test/mjsunit/array-length.js
index 1d98193..9731e7a 100644
--- a/test/mjsunit/array-length.js
+++ b/test/mjsunit/array-length.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/array-sort.js b/test/mjsunit/array-sort.js
index ca49b8c..398b721 100644
--- a/test/mjsunit/array-sort.js
+++ b/test/mjsunit/array-sort.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -30,13 +30,29 @@
 // Test counter-intuitive default number sorting.
 function TestNumberSort() {
   var a = [ 200, 45, 7 ];
-  // Default sort calls toString on each element and orders
+
+  // Default sort converts each element to string and orders
   // lexicographically.
   a.sort();
   assertArrayEquals([ 200, 45, 7 ], a);
   // Sort numbers by value using a compare functions.
   a.sort(function(x, y) { return x - y; });
   assertArrayEquals([ 7, 45, 200 ], a);
+
+  // Default sort on negative numbers.
+  a = [-12345,-123,-1234,-123456];
+  a.sort();
+  assertArrayEquals([-123,-1234,-12345,-123456], a);
+
+  // Default sort on negative and non-negative numbers.
+  a = [123456,0,-12345,-123,123,1234,-1234,0,12345,-123456];
+  a.sort();
+  assertArrayEquals([-123,-1234,-12345,-123456,0,0,123,1234,12345,123456], a);
+
+  // Default sort on Smis and non-Smis.
+  a = [1000000000, 10000000000, 1000000001, -1000000000, -10000000000, -1000000001];
+  a.sort();
+  assertArrayEquals([-1000000000, -10000000000, -1000000001, 1000000000, 10000000000, 1000000001], a);
 }
 
 TestNumberSort();
diff --git a/test/mjsunit/array-splice-webkit.js b/test/mjsunit/array-splice-webkit.js
index e92b3e6..113a56a 100644
--- a/test/mjsunit/array-splice-webkit.js
+++ b/test/mjsunit/array-splice-webkit.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/array-splice.js b/test/mjsunit/array-splice.js
index 0e7b054..b5e85c6 100644
--- a/test/mjsunit/array-splice.js
+++ b/test/mjsunit/array-splice.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/array_length.js b/test/mjsunit/array_length.js
index c1f11a2..11808af 100644
--- a/test/mjsunit/array_length.js
+++ b/test/mjsunit/array_length.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/ascii-regexp-subject.js b/test/mjsunit/ascii-regexp-subject.js
index a2dcc23..01d0697 100644
--- a/test/mjsunit/ascii-regexp-subject.js
+++ b/test/mjsunit/ascii-regexp-subject.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/binary-operation-overwrite.js b/test/mjsunit/binary-operation-overwrite.js
index b7c8b59..8d217c5 100644
--- a/test/mjsunit/binary-operation-overwrite.js
+++ b/test/mjsunit/binary-operation-overwrite.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/body-not-visible.js b/test/mjsunit/body-not-visible.js
index 83a10dc..c681ab3 100644
--- a/test/mjsunit/body-not-visible.js
+++ b/test/mjsunit/body-not-visible.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/bugs/bug-1231206.js b/test/mjsunit/bugs/bug-1231206.js
index 3b6cb60..04b296b 100644
--- a/test/mjsunit/bugs/bug-1231206.js
+++ b/test/mjsunit/bugs/bug-1231206.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/bugs/bug-1344252.js b/test/mjsunit/bugs/bug-1344252.js
index 436ece9..1723834 100644
--- a/test/mjsunit/bugs/bug-1344252.js
+++ b/test/mjsunit/bugs/bug-1344252.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/bugs/bug-900066.js b/test/mjsunit/bugs/bug-900066.js
index b0d0db8..3b7cc3f 100644
--- a/test/mjsunit/bugs/bug-900066.js
+++ b/test/mjsunit/bugs/bug-900066.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/bugs/bug-941049.js b/test/mjsunit/bugs/bug-941049.js
index 9a6fe6d..f68c37a 100644
--- a/test/mjsunit/bugs/bug-941049.js
+++ b/test/mjsunit/bugs/bug-941049.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/call-non-function-call.js b/test/mjsunit/call-non-function-call.js
index 81f858d..6088fc3 100644
--- a/test/mjsunit/call-non-function-call.js
+++ b/test/mjsunit/call-non-function-call.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/call-non-function.js b/test/mjsunit/call-non-function.js
index b001d5e..8ed5ccb 100644
--- a/test/mjsunit/call-non-function.js
+++ b/test/mjsunit/call-non-function.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/call.js b/test/mjsunit/call.js
index 27bb6f0..b873d7d 100644
--- a/test/mjsunit/call.js
+++ b/test/mjsunit/call.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/char-escape.js b/test/mjsunit/char-escape.js
index f4f580f..a1b3429 100644
--- a/test/mjsunit/char-escape.js
+++ b/test/mjsunit/char-escape.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/class-of-builtins.js b/test/mjsunit/class-of-builtins.js
index c3f894d..40c958c 100644
--- a/test/mjsunit/class-of-builtins.js
+++ b/test/mjsunit/class-of-builtins.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/closure.js b/test/mjsunit/closure.js
index 9ef13a9..b1460d3 100644
--- a/test/mjsunit/closure.js
+++ b/test/mjsunit/closure.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/compare-nan.js b/test/mjsunit/compare-nan.js
index de6c7ad..29818c8 100644
--- a/test/mjsunit/compare-nan.js
+++ b/test/mjsunit/compare-nan.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/const-redecl.js b/test/mjsunit/const-redecl.js
index 6fce6ca..26d765b 100644
--- a/test/mjsunit/const-redecl.js
+++ b/test/mjsunit/const-redecl.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/const.js b/test/mjsunit/const.js
index 0d470a2..5ad0c9c 100644
--- a/test/mjsunit/const.js
+++ b/test/mjsunit/const.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/context-variable-assignments.js b/test/mjsunit/context-variable-assignments.js
index 7b3b1ad..930b969 100644
--- a/test/mjsunit/context-variable-assignments.js
+++ b/test/mjsunit/context-variable-assignments.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/cyclic-array-to-string.js b/test/mjsunit/cyclic-array-to-string.js
index d2018f8..0a2d6e3 100644
--- a/test/mjsunit/cyclic-array-to-string.js
+++ b/test/mjsunit/cyclic-array-to-string.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/date-parse.js b/test/mjsunit/date-parse.js
index 0430a26..1e09db5 100644
--- a/test/mjsunit/date-parse.js
+++ b/test/mjsunit/date-parse.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/date.js b/test/mjsunit/date.js
index e04c6ec..342ace7 100644
--- a/test/mjsunit/date.js
+++ b/test/mjsunit/date.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-backtrace-text.js b/test/mjsunit/debug-backtrace-text.js
index 20607d8..d1acdab 100644
--- a/test/mjsunit/debug-backtrace-text.js
+++ b/test/mjsunit/debug-backtrace-text.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-backtrace.js b/test/mjsunit/debug-backtrace.js
index 652193c..91e1476 100644
--- a/test/mjsunit/debug-backtrace.js
+++ b/test/mjsunit/debug-backtrace.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-breakpoints.js b/test/mjsunit/debug-breakpoints.js
index 634a3f1..c332f1e 100644
--- a/test/mjsunit/debug-breakpoints.js
+++ b/test/mjsunit/debug-breakpoints.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-changebreakpoint.js b/test/mjsunit/debug-changebreakpoint.js
index ec59571..e830082 100644
--- a/test/mjsunit/debug-changebreakpoint.js
+++ b/test/mjsunit/debug-changebreakpoint.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-clearbreakpoint.js b/test/mjsunit/debug-clearbreakpoint.js
index 5409cc9..fd8b2cf 100644
--- a/test/mjsunit/debug-clearbreakpoint.js
+++ b/test/mjsunit/debug-clearbreakpoint.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-conditional-breakpoints.js b/test/mjsunit/debug-conditional-breakpoints.js
index 0b5aec2..b2be625 100644
--- a/test/mjsunit/debug-conditional-breakpoints.js
+++ b/test/mjsunit/debug-conditional-breakpoints.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-constructed-by.js b/test/mjsunit/debug-constructed-by.js
index d02dc61..c904e25 100644
--- a/test/mjsunit/debug-constructed-by.js
+++ b/test/mjsunit/debug-constructed-by.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-constructor.js b/test/mjsunit/debug-constructor.js
index b3c8ebf..12520f4 100644
--- a/test/mjsunit/debug-constructor.js
+++ b/test/mjsunit/debug-constructor.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-continue.js b/test/mjsunit/debug-continue.js
index 8d764e8..e01885c 100644
--- a/test/mjsunit/debug-continue.js
+++ b/test/mjsunit/debug-continue.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-enable-disable-breakpoints.js b/test/mjsunit/debug-enable-disable-breakpoints.js
index 8cd59ef..02bfc9e 100644
--- a/test/mjsunit/debug-enable-disable-breakpoints.js
+++ b/test/mjsunit/debug-enable-disable-breakpoints.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-evaluate-arguments.js b/test/mjsunit/debug-evaluate-arguments.js
index 9ceb918..730e9ca 100644
--- a/test/mjsunit/debug-evaluate-arguments.js
+++ b/test/mjsunit/debug-evaluate-arguments.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-evaluate-locals.js b/test/mjsunit/debug-evaluate-locals.js
index 2c5816a..97b9f39 100644
--- a/test/mjsunit/debug-evaluate-locals.js
+++ b/test/mjsunit/debug-evaluate-locals.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-evaluate-recursive.js b/test/mjsunit/debug-evaluate-recursive.js
index 163b68c..85631c1 100644
--- a/test/mjsunit/debug-evaluate-recursive.js
+++ b/test/mjsunit/debug-evaluate-recursive.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-evaluate-with.js b/test/mjsunit/debug-evaluate-with.js
index a8482b7..e746ab2 100644
--- a/test/mjsunit/debug-evaluate-with.js
+++ b/test/mjsunit/debug-evaluate-with.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-evaluate.js b/test/mjsunit/debug-evaluate.js
index eb8f424..9a1e427 100644
--- a/test/mjsunit/debug-evaluate.js
+++ b/test/mjsunit/debug-evaluate.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-event-listener.js b/test/mjsunit/debug-event-listener.js
index 079f9a3..2d9d428 100644
--- a/test/mjsunit/debug-event-listener.js
+++ b/test/mjsunit/debug-event-listener.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-ignore-breakpoints.js b/test/mjsunit/debug-ignore-breakpoints.js
index 1b55e42..e71e4fb 100644
--- a/test/mjsunit/debug-ignore-breakpoints.js
+++ b/test/mjsunit/debug-ignore-breakpoints.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-multiple-breakpoints.js b/test/mjsunit/debug-multiple-breakpoints.js
index ff3e539..2bdff57 100644
--- a/test/mjsunit/debug-multiple-breakpoints.js
+++ b/test/mjsunit/debug-multiple-breakpoints.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-referenced-by.js b/test/mjsunit/debug-referenced-by.js
index 41f6517..2b35a9c 100644
--- a/test/mjsunit/debug-referenced-by.js
+++ b/test/mjsunit/debug-referenced-by.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-script-breakpoints.js b/test/mjsunit/debug-script-breakpoints.js
index 958c78b..28c8018 100644
--- a/test/mjsunit/debug-script-breakpoints.js
+++ b/test/mjsunit/debug-script-breakpoints.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-script.js b/test/mjsunit/debug-script.js
index 5a5caf1..55e83c1 100644
--- a/test/mjsunit/debug-script.js
+++ b/test/mjsunit/debug-script.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -53,9 +53,8 @@
   }
 }
 
-// This has to be updated if the number of native and extension scripts change.
+// This has to be updated if the number of native scripts change.
 assertEquals(12, native_count);
-assertEquals(1, extension_count);
 assertEquals(2, normal_count);  // This script and mjsunit.js.
 
 // Test a builtins script.
@@ -75,8 +74,10 @@
 
 // Test an extension script.
 var extension_gc_script = Debug.findScript('v8/gc');
-assertEquals('v8/gc', extension_gc_script.name);
-assertEquals(Debug.ScriptType.Extension, extension_gc_script.type);
+if (extension_gc_script) {
+  assertEquals('v8/gc', extension_gc_script.name);
+  assertEquals(Debug.ScriptType.Extension, extension_gc_script.type);
+}
 
 // Test a normal script.
 var mjsunit_js_script = Debug.findScript(/mjsunit.js/);
diff --git a/test/mjsunit/debug-scripts-request.js b/test/mjsunit/debug-scripts-request.js
index b889129..0fc857a 100644
--- a/test/mjsunit/debug-scripts-request.js
+++ b/test/mjsunit/debug-scripts-request.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-setbreakpoint.js b/test/mjsunit/debug-setbreakpoint.js
index cdb8870..faf8036 100644
--- a/test/mjsunit/debug-setbreakpoint.js
+++ b/test/mjsunit/debug-setbreakpoint.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-sourceinfo.js b/test/mjsunit/debug-sourceinfo.js
index f360684..2bad07a 100644
--- a/test/mjsunit/debug-sourceinfo.js
+++ b/test/mjsunit/debug-sourceinfo.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.

+// Copyright 2008 the V8 project authors. All rights reserved.

 // Redistribution and use in source and binary forms, with or without

 // modification, are permitted provided that the following conditions are

 // met:

@@ -47,7 +47,7 @@
 

 // This magic number is the length or the first line comment (actually number

 // of characters before 'function a(...'.

-var comment_line_length = 1714;

+var comment_line_length = 1726;

 var start_a = 10 + comment_line_length;

 var start_b = 37 + comment_line_length;

 var start_c = 71 + comment_line_length;

diff --git a/test/mjsunit/debug-sourceslice.js b/test/mjsunit/debug-sourceslice.js
index f97b7f8..db9a3e7 100644
--- a/test/mjsunit/debug-sourceslice.js
+++ b/test/mjsunit/debug-sourceslice.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-step-stub-callfunction.js b/test/mjsunit/debug-step-stub-callfunction.js
index 1de2287..991c62e 100644
--- a/test/mjsunit/debug-step-stub-callfunction.js
+++ b/test/mjsunit/debug-step-stub-callfunction.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-step.js b/test/mjsunit/debug-step.js
index 0c5492e..1c0b383 100644
--- a/test/mjsunit/debug-step.js
+++ b/test/mjsunit/debug-step.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/debug-stepin-constructor.js b/test/mjsunit/debug-stepin-constructor.js
index 6f6700c..ecd1283 100644
--- a/test/mjsunit/debug-stepin-constructor.js
+++ b/test/mjsunit/debug-stepin-constructor.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/declare-locally.js b/test/mjsunit/declare-locally.js
index 5170893..93fcb85 100644
--- a/test/mjsunit/declare-locally.js
+++ b/test/mjsunit/declare-locally.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/deep-recursion.js b/test/mjsunit/deep-recursion.js
index 8edea79..a8093eb 100644
--- a/test/mjsunit/deep-recursion.js
+++ b/test/mjsunit/deep-recursion.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/delay-syntax-error.js b/test/mjsunit/delay-syntax-error.js
index 2cb35fd..4fcb143 100644
--- a/test/mjsunit/delay-syntax-error.js
+++ b/test/mjsunit/delay-syntax-error.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/delete-global-properties.js b/test/mjsunit/delete-global-properties.js
index 9a70a92..b3813dc 100644
--- a/test/mjsunit/delete-global-properties.js
+++ b/test/mjsunit/delete-global-properties.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/delete-in-eval.js b/test/mjsunit/delete-in-eval.js
index 6d1eb42..9278013 100644
--- a/test/mjsunit/delete-in-eval.js
+++ b/test/mjsunit/delete-in-eval.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/delete-in-with.js b/test/mjsunit/delete-in-with.js
index 88d4098..1efc18d 100644
--- a/test/mjsunit/delete-in-with.js
+++ b/test/mjsunit/delete-in-with.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/delete-vars-from-eval.js b/test/mjsunit/delete-vars-from-eval.js
index b5dbfae..a457466 100644
--- a/test/mjsunit/delete-vars-from-eval.js
+++ b/test/mjsunit/delete-vars-from-eval.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/delete.js b/test/mjsunit/delete.js
index 4b88366..6fc15e9 100644
--- a/test/mjsunit/delete.js
+++ b/test/mjsunit/delete.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/do-not-strip-fc.js b/test/mjsunit/do-not-strip-fc.js
index cb8e9aa..1aef28c 100644
--- a/test/mjsunit/do-not-strip-fc.js
+++ b/test/mjsunit/do-not-strip-fc.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/dont-enum-array-holes.js b/test/mjsunit/dont-enum-array-holes.js
index c39b13e..4761dc4 100644
--- a/test/mjsunit/dont-enum-array-holes.js
+++ b/test/mjsunit/dont-enum-array-holes.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/dont-reinit-global-var.js b/test/mjsunit/dont-reinit-global-var.js
index 8747f4f..1e3c1a0 100644
--- a/test/mjsunit/dont-reinit-global-var.js
+++ b/test/mjsunit/dont-reinit-global-var.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/double-equals.js b/test/mjsunit/double-equals.js
index d6dd5a8..a68d7ea 100644
--- a/test/mjsunit/double-equals.js
+++ b/test/mjsunit/double-equals.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/dtoa.js b/test/mjsunit/dtoa.js
index b73d670..80167b7 100644
--- a/test/mjsunit/dtoa.js
+++ b/test/mjsunit/dtoa.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/enumeration_order.js b/test/mjsunit/enumeration_order.js
index db7c88e..699a636 100644
--- a/test/mjsunit/enumeration_order.js
+++ b/test/mjsunit/enumeration_order.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/escape.js b/test/mjsunit/escape.js
index 3796f7c..5732ce3 100644
--- a/test/mjsunit/escape.js
+++ b/test/mjsunit/escape.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/eval-typeof-non-existing.js b/test/mjsunit/eval-typeof-non-existing.js
index 5dfafd6..3513767 100644
--- a/test/mjsunit/eval-typeof-non-existing.js
+++ b/test/mjsunit/eval-typeof-non-existing.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/execScript-case-insensitive.js b/test/mjsunit/execScript-case-insensitive.js
index 88fd83f..468d657 100644
--- a/test/mjsunit/execScript-case-insensitive.js
+++ b/test/mjsunit/execScript-case-insensitive.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/extra-arguments.js b/test/mjsunit/extra-arguments.js
index e24f63c..186277a 100644
--- a/test/mjsunit/extra-arguments.js
+++ b/test/mjsunit/extra-arguments.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/extra-commas.js b/test/mjsunit/extra-commas.js
index b540e96..6fed04c 100644
--- a/test/mjsunit/extra-commas.js
+++ b/test/mjsunit/extra-commas.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/for-in-null-or-undefined.js b/test/mjsunit/for-in-null-or-undefined.js
index 7ffbd57..b12d1b0 100644
--- a/test/mjsunit/for-in-null-or-undefined.js
+++ b/test/mjsunit/for-in-null-or-undefined.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/for-in-special-cases.js b/test/mjsunit/for-in-special-cases.js
index d4e27b3..3c54256 100644
--- a/test/mjsunit/for-in-special-cases.js
+++ b/test/mjsunit/for-in-special-cases.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/for-in.js b/test/mjsunit/for-in.js
index b8faeef..dfe721d 100644
--- a/test/mjsunit/for-in.js
+++ b/test/mjsunit/for-in.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -67,3 +67,20 @@
 
 for (var hest = 'hest' in {}) { }
 assertEquals('hest', hest);
+
+var result = '';
+for (var p in {a : [0], b : 1}) { result += p; }
+assertEquals('ab', result);
+
+var result = '';
+for (var p in {a : {v:1}, b : 1}) { result += p; }
+assertEquals('ab', result);
+
+var result = '';
+for (var p in { get a() {}, b : 1}) { result += p; }
+assertEquals('ab', result);
+
+var result = '';
+for (var p in { get a() {}, set a(x) {}, b : 1}) { result += p; }
+assertEquals('ab', result);
+
diff --git a/test/mjsunit/fun-as-prototype.js b/test/mjsunit/fun-as-prototype.js
index da23bf5..fbe995a 100644
--- a/test/mjsunit/fun-as-prototype.js
+++ b/test/mjsunit/fun-as-prototype.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/fun_name.js b/test/mjsunit/fun_name.js
index 79ab0c8..676daaa 100644
--- a/test/mjsunit/fun_name.js
+++ b/test/mjsunit/fun_name.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/function-arguments-null.js b/test/mjsunit/function-arguments-null.js
index f092fdc..21e542f 100644
--- a/test/mjsunit/function-arguments-null.js
+++ b/test/mjsunit/function-arguments-null.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/function-caller.js b/test/mjsunit/function-caller.js
index a2fba03..f749346 100644
--- a/test/mjsunit/function-caller.js
+++ b/test/mjsunit/function-caller.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/function-property.js b/test/mjsunit/function-property.js
index e34fd56..a657f64 100644
--- a/test/mjsunit/function-property.js
+++ b/test/mjsunit/function-property.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/function-prototype.js b/test/mjsunit/function-prototype.js
index 3131672..371311e 100644
--- a/test/mjsunit/function-prototype.js
+++ b/test/mjsunit/function-prototype.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/function-source.js b/test/mjsunit/function-source.js
index ddb53b4..7525775 100644
--- a/test/mjsunit/function-source.js
+++ b/test/mjsunit/function-source.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/function.js b/test/mjsunit/function.js
index 265c323..6c80fa8 100644
--- a/test/mjsunit/function.js
+++ b/test/mjsunit/function.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/fuzz-accessors.js b/test/mjsunit/fuzz-accessors.js
index 091d63f..f3602cc 100644
--- a/test/mjsunit/fuzz-accessors.js
+++ b/test/mjsunit/fuzz-accessors.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/fuzz-natives.js b/test/mjsunit/fuzz-natives.js
index f5cdcc1..fbebfb9 100644
--- a/test/mjsunit/fuzz-natives.js
+++ b/test/mjsunit/fuzz-natives.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/getter-in-value-prototype.js b/test/mjsunit/getter-in-value-prototype.js
index 63e296c..b55320a 100644
--- a/test/mjsunit/getter-in-value-prototype.js
+++ b/test/mjsunit/getter-in-value-prototype.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/global-const-var-conflicts.js b/test/mjsunit/global-const-var-conflicts.js
index 99a7951..d38d0ee 100644
--- a/test/mjsunit/global-const-var-conflicts.js
+++ b/test/mjsunit/global-const-var-conflicts.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/global-vars-eval.js b/test/mjsunit/global-vars-eval.js
index e90ea4f..900f7be 100644
--- a/test/mjsunit/global-vars-eval.js
+++ b/test/mjsunit/global-vars-eval.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/global-vars-with.js b/test/mjsunit/global-vars-with.js
index 4a46dcc..05ca6b6 100644
--- a/test/mjsunit/global-vars-with.js
+++ b/test/mjsunit/global-vars-with.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/greedy.js b/test/mjsunit/greedy.js
index 2ebfc66..d357f0c 100644
--- a/test/mjsunit/greedy.js
+++ b/test/mjsunit/greedy.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/has-own-property.js b/test/mjsunit/has-own-property.js
index 6b4af92..5ff8db5 100644
--- a/test/mjsunit/has-own-property.js
+++ b/test/mjsunit/has-own-property.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/html-comments.js b/test/mjsunit/html-comments.js
index d4107bd..f39271a 100644
--- a/test/mjsunit/html-comments.js
+++ b/test/mjsunit/html-comments.js
@@ -1,6 +1,6 @@
 --> must work at beginning of file!
 
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/html-string-funcs.js b/test/mjsunit/html-string-funcs.js
index 278d184..213b7f3 100644
--- a/test/mjsunit/html-string-funcs.js
+++ b/test/mjsunit/html-string-funcs.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/if-in-undefined.js b/test/mjsunit/if-in-undefined.js
index f88c1c2..5bfa42e 100644
--- a/test/mjsunit/if-in-undefined.js
+++ b/test/mjsunit/if-in-undefined.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/in.js b/test/mjsunit/in.js
index 06adb71..23ef65e 100644
--- a/test/mjsunit/in.js
+++ b/test/mjsunit/in.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/instanceof.js b/test/mjsunit/instanceof.js
index aa7b5cf..3fef2e2 100644
--- a/test/mjsunit/instanceof.js
+++ b/test/mjsunit/instanceof.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/integer-to-string.js b/test/mjsunit/integer-to-string.js
index 4e33ad7..3076bc4 100644
--- a/test/mjsunit/integer-to-string.js
+++ b/test/mjsunit/integer-to-string.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/invalid-lhs.js b/test/mjsunit/invalid-lhs.js
index 9770806..bbd19f2 100644
--- a/test/mjsunit/invalid-lhs.js
+++ b/test/mjsunit/invalid-lhs.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/keyed-ic.js b/test/mjsunit/keyed-ic.js
index 59818c7..d37bd03 100644
--- a/test/mjsunit/keyed-ic.js
+++ b/test/mjsunit/keyed-ic.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/large-object-literal.js b/test/mjsunit/large-object-literal.js
index 5f8dbc9..8118afe 100644
--- a/test/mjsunit/large-object-literal.js
+++ b/test/mjsunit/large-object-literal.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/lazy-load.js b/test/mjsunit/lazy-load.js
index 86490d0..c384331 100644
--- a/test/mjsunit/lazy-load.js
+++ b/test/mjsunit/lazy-load.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/leakcheck.js b/test/mjsunit/leakcheck.js
index 18b2680..7cbb2e5 100644
--- a/test/mjsunit/leakcheck.js
+++ b/test/mjsunit/leakcheck.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/length.js b/test/mjsunit/length.js
index 8499611..3331564 100644
--- a/test/mjsunit/length.js
+++ b/test/mjsunit/length.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/math-min-max.js b/test/mjsunit/math-min-max.js
index 4333e12..0ed9912 100644
--- a/test/mjsunit/math-min-max.js
+++ b/test/mjsunit/math-min-max.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/megamorphic-callbacks.js b/test/mjsunit/megamorphic-callbacks.js
index 13ffad1..8829df0 100644
--- a/test/mjsunit/megamorphic-callbacks.js
+++ b/test/mjsunit/megamorphic-callbacks.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/mirror-array.js b/test/mjsunit/mirror-array.js
index 4622711..25e64a6 100644
--- a/test/mjsunit/mirror-array.js
+++ b/test/mjsunit/mirror-array.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/mirror-boolean.js b/test/mjsunit/mirror-boolean.js
index dbe4e10..2147048 100644
--- a/test/mjsunit/mirror-boolean.js
+++ b/test/mjsunit/mirror-boolean.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/mirror-date.js b/test/mjsunit/mirror-date.js
index 4d0d39c..e96badc 100644
--- a/test/mjsunit/mirror-date.js
+++ b/test/mjsunit/mirror-date.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/mirror-error.js b/test/mjsunit/mirror-error.js
index aeb5cdd..49eaaff 100644
--- a/test/mjsunit/mirror-error.js
+++ b/test/mjsunit/mirror-error.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/mirror-function.js b/test/mjsunit/mirror-function.js
index 61a15a9..c6e7a4e 100644
--- a/test/mjsunit/mirror-function.js
+++ b/test/mjsunit/mirror-function.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/mirror-null.js b/test/mjsunit/mirror-null.js
index 280ed6a..4233efa 100644
--- a/test/mjsunit/mirror-null.js
+++ b/test/mjsunit/mirror-null.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/mirror-number.js b/test/mjsunit/mirror-number.js
index abeb6df..20280c3 100644
--- a/test/mjsunit/mirror-number.js
+++ b/test/mjsunit/mirror-number.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/mirror-object.js b/test/mjsunit/mirror-object.js
index 75962d9..bbaf044 100644
--- a/test/mjsunit/mirror-object.js
+++ b/test/mjsunit/mirror-object.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/mirror-regexp.js b/test/mjsunit/mirror-regexp.js
index 0833940..443caeb 100644
--- a/test/mjsunit/mirror-regexp.js
+++ b/test/mjsunit/mirror-regexp.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/mirror-string.js b/test/mjsunit/mirror-string.js
index aae2efc..451f8f1 100644
--- a/test/mjsunit/mirror-string.js
+++ b/test/mjsunit/mirror-string.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/mirror-undefined.js b/test/mjsunit/mirror-undefined.js
index ddbdb52..fc35c8d 100644
--- a/test/mjsunit/mirror-undefined.js
+++ b/test/mjsunit/mirror-undefined.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/mirror-unresolved-function.js b/test/mjsunit/mirror-unresolved-function.js
index 562ad78..ab49508 100644
--- a/test/mjsunit/mirror-unresolved-function.js
+++ b/test/mjsunit/mirror-unresolved-function.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/mjsunit.js b/test/mjsunit/mjsunit.js
index 224889c..e7b47cd 100644
--- a/test/mjsunit/mjsunit.js
+++ b/test/mjsunit/mjsunit.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/mjsunit.status b/test/mjsunit/mjsunit.status
index df1a34f..4289bc4 100644
--- a/test/mjsunit/mjsunit.status
+++ b/test/mjsunit/mjsunit.status
@@ -1,4 +1,4 @@
-# Copyright 2008 Google Inc.  All rights reserved.
+# Copyright 2008 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
 # met:
@@ -38,11 +38,13 @@
 
 [ $arch == arm ]
 
-#1020483: Debug tests fail on arm
+# 1020483: Debug tests fail on arm
 debug-constructor: FAIL
 debug-continue: FAIL
 debug-backtrace-text: FAIL
 debug-backtrace: FAIL
+# Passes on ARM simulator, fails on ARM hardware.
+debug-breakpoints: PASS || FAIL
 debug-evaluate-recursive: FAIL
 debug-changebreakpoint: FAIL
 debug-clearbreakpoint: FAIL
@@ -52,7 +54,8 @@
 debug-event-listener: FAIL
 debug-ignore-breakpoints: FAIL
 debug-multiple-breakpoints: FAIL
-# Bug number 1308895. This passes on the ARM simulator, fails on the ARM Linux machine.
+# Bug number 1308895. This passes on the ARM simulator,
+# fails on the ARM Linux machine.
 debug-script-breakpoints: PASS || FAIL
 debug-setbreakpoint: FAIL
 debug-step-stub-callfunction: FAIL
@@ -60,3 +63,5 @@
 debug-step: FAIL
 regress/regress-998565: FAIL
 regress/regress-1081309: FAIL
+# Call as function does not always work on ARM port yet.
+number-string-index-call: FAIL
diff --git a/test/mjsunit/mul-exhaustive.js b/test/mjsunit/mul-exhaustive.js
index 1b9a46e..452f933 100644
--- a/test/mjsunit/mul-exhaustive.js
+++ b/test/mjsunit/mul-exhaustive.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/negate-zero.js b/test/mjsunit/negate-zero.js
index b5c81c2..31d460a 100644
--- a/test/mjsunit/negate-zero.js
+++ b/test/mjsunit/negate-zero.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/negate.js b/test/mjsunit/negate.js
index b56304e..3bf4111 100644
--- a/test/mjsunit/negate.js
+++ b/test/mjsunit/negate.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/nested-repetition-count-overflow.js b/test/mjsunit/nested-repetition-count-overflow.js
index c92fbd8..8f040c3 100644
--- a/test/mjsunit/nested-repetition-count-overflow.js
+++ b/test/mjsunit/nested-repetition-count-overflow.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/new.js b/test/mjsunit/new.js
index 07b1560..1062628 100644
--- a/test/mjsunit/new.js
+++ b/test/mjsunit/new.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/newline-in-string.js b/test/mjsunit/newline-in-string.js
index 323f26b..8c3ff86 100644
--- a/test/mjsunit/newline-in-string.js
+++ b/test/mjsunit/newline-in-string.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/no-branch-elimination.js b/test/mjsunit/no-branch-elimination.js
index cbf69e0..538039b 100644
--- a/test/mjsunit/no-branch-elimination.js
+++ b/test/mjsunit/no-branch-elimination.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/no-octal-constants-above-256.js b/test/mjsunit/no-octal-constants-above-256.js
index cf2b7a0..1525d6a 100644
--- a/test/mjsunit/no-octal-constants-above-256.js
+++ b/test/mjsunit/no-octal-constants-above-256.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/no-semicolon.js b/test/mjsunit/no-semicolon.js
index 1bffe50..fa6ccba 100644
--- a/test/mjsunit/no-semicolon.js
+++ b/test/mjsunit/no-semicolon.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/non-ascii-replace.js b/test/mjsunit/non-ascii-replace.js
index a478e19..9807412 100644
--- a/test/mjsunit/non-ascii-replace.js
+++ b/test/mjsunit/non-ascii-replace.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/nul-characters.js b/test/mjsunit/nul-characters.js
index 35c7d21..22da82d 100644
--- a/test/mjsunit/nul-characters.js
+++ b/test/mjsunit/nul-characters.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/number-limits.js b/test/mjsunit/number-limits.js
index 7b9d0c8..1d9a1e5 100644
--- a/test/mjsunit/number-limits.js
+++ b/test/mjsunit/number-limits.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/bugs/bug-1346700.js b/test/mjsunit/number-string-index-call.js
similarity index 84%
copy from test/mjsunit/bugs/bug-1346700.js
copy to test/mjsunit/number-string-index-call.js
index 249ae41..6f540c0 100644
--- a/test/mjsunit/bugs/bug-1346700.js
+++ b/test/mjsunit/number-string-index-call.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -25,5 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-var o = {"\u59cb\u53d1\u7ad9": 1};
-assertEquals(1, o.\u59cb\u53d1\u7ad9);
+// Flags: --call_regexp
+var callbacks = [ function() {return 'foo'}, "nonobject", /abc/ ];
+assertEquals('foo', callbacks['0']());
+assertThrows("callbacks['1']()");
+assertEquals('abc', callbacks['2']("abcdefg"));
diff --git a/test/mjsunit/number-tostring-small.js b/test/mjsunit/number-tostring-small.js
index b168ac0..dbd2b59 100644
--- a/test/mjsunit/number-tostring-small.js
+++ b/test/mjsunit/number-tostring-small.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/number-tostring.js b/test/mjsunit/number-tostring.js
index 5781987..04d027f 100644
--- a/test/mjsunit/number-tostring.js
+++ b/test/mjsunit/number-tostring.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/obj-construct.js b/test/mjsunit/obj-construct.js
index cf2b47f..98e09b2 100644
--- a/test/mjsunit/obj-construct.js
+++ b/test/mjsunit/obj-construct.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/parse-int-float.js b/test/mjsunit/parse-int-float.js
index f0acbfa..ad2275e 100644
--- a/test/mjsunit/parse-int-float.js
+++ b/test/mjsunit/parse-int-float.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/property-object-key.js b/test/mjsunit/property-object-key.js
index 1bc9434..5eb1e1b 100644
--- a/test/mjsunit/property-object-key.js
+++ b/test/mjsunit/property-object-key.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/proto.js b/test/mjsunit/proto.js
index 904793e..faf98b2 100644
--- a/test/mjsunit/proto.js
+++ b/test/mjsunit/proto.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/prototype.js b/test/mjsunit/prototype.js
index 36aab69..bfc1a79 100644
--- a/test/mjsunit/prototype.js
+++ b/test/mjsunit/prototype.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regexp-multiline-stack-trace.js b/test/mjsunit/regexp-multiline-stack-trace.js
index cc960cb..aa2de88 100644
--- a/test/mjsunit/regexp-multiline-stack-trace.js
+++ b/test/mjsunit/regexp-multiline-stack-trace.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regexp-multiline.js b/test/mjsunit/regexp-multiline.js
index b503a0d..32edf25 100644
--- a/test/mjsunit/regexp-multiline.js
+++ b/test/mjsunit/regexp-multiline.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regexp-standalones.js b/test/mjsunit/regexp-standalones.js
index eb1df1f..4699754 100644
--- a/test/mjsunit/regexp-standalones.js
+++ b/test/mjsunit/regexp-standalones.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regexp-static.js b/test/mjsunit/regexp-static.js
index 1976170..73940d7 100644
--- a/test/mjsunit/regexp-static.js
+++ b/test/mjsunit/regexp-static.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regexp.js b/test/mjsunit/regexp.js
index de37d85..00f02e0 100644
--- a/test/mjsunit/regexp.js
+++ b/test/mjsunit/regexp.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1030466.js b/test/mjsunit/regress/regress-1030466.js
index dabb5f0..8427ba0 100644
--- a/test/mjsunit/regress/regress-1030466.js
+++ b/test/mjsunit/regress/regress-1030466.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1036894.js b/test/mjsunit/regress/regress-1036894.js
index 6bbdcc2..d89ceda 100644
--- a/test/mjsunit/regress/regress-1036894.js
+++ b/test/mjsunit/regress/regress-1036894.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1039610.js b/test/mjsunit/regress/regress-1039610.js
index 6ebe08b..fd5c549 100644
--- a/test/mjsunit/regress/regress-1039610.js
+++ b/test/mjsunit/regress/regress-1039610.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1050043.js b/test/mjsunit/regress/regress-1050043.js
index 30e8c4f..e42728f 100644
--- a/test/mjsunit/regress/regress-1050043.js
+++ b/test/mjsunit/regress/regress-1050043.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1062422.js b/test/mjsunit/regress/regress-1062422.js
index 2d8cdc5..1e2c798 100644
--- a/test/mjsunit/regress/regress-1062422.js
+++ b/test/mjsunit/regress/regress-1062422.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1066899.js b/test/mjsunit/regress/regress-1066899.js
index 8c8fa0d..37fd554 100644
--- a/test/mjsunit/regress/regress-1066899.js
+++ b/test/mjsunit/regress/regress-1066899.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1081309.js b/test/mjsunit/regress/regress-1081309.js
index daf003b..6871039 100644
--- a/test/mjsunit/regress/regress-1081309.js
+++ b/test/mjsunit/regress/regress-1081309.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1102760.js b/test/mjsunit/regress/regress-1102760.js
index 937beaa..890ecab 100644
--- a/test/mjsunit/regress/regress-1102760.js
+++ b/test/mjsunit/regress/regress-1102760.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1110164.js b/test/mjsunit/regress/regress-1110164.js
index c55f3f7..33f96af 100644
--- a/test/mjsunit/regress/regress-1110164.js
+++ b/test/mjsunit/regress/regress-1110164.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1112051.js b/test/mjsunit/regress/regress-1112051.js
index e6fc2cb..0af6bb4 100644
--- a/test/mjsunit/regress/regress-1112051.js
+++ b/test/mjsunit/regress/regress-1112051.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1114040.js b/test/mjsunit/regress/regress-1114040.js
index 52ff938..9d1b320 100644
--- a/test/mjsunit/regress/regress-1114040.js
+++ b/test/mjsunit/regress/regress-1114040.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1134697.js b/test/mjsunit/regress/regress-1134697.js
index c6a1f93..3d851ae 100644
--- a/test/mjsunit/regress/regress-1134697.js
+++ b/test/mjsunit/regress/regress-1134697.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1170187.js b/test/mjsunit/regress/regress-1170187.js
index 795ad03..f0471ff 100644
--- a/test/mjsunit/regress/regress-1170187.js
+++ b/test/mjsunit/regress/regress-1170187.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1173979.js b/test/mjsunit/regress/regress-1173979.js
index 2b3147f..42649d0 100644
--- a/test/mjsunit/regress/regress-1173979.js
+++ b/test/mjsunit/regress/regress-1173979.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1175390.js b/test/mjsunit/regress/regress-1175390.js
index 651ac1e..7b1a7e0 100644
--- a/test/mjsunit/regress/regress-1175390.js
+++ b/test/mjsunit/regress/regress-1175390.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1177518.js b/test/mjsunit/regress/regress-1177518.js
index a393b11..2ba3c11 100644
--- a/test/mjsunit/regress/regress-1177518.js
+++ b/test/mjsunit/regress/regress-1177518.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1177809.js b/test/mjsunit/regress/regress-1177809.js
index 5c217d9..703e607 100644
--- a/test/mjsunit/regress/regress-1177809.js
+++ b/test/mjsunit/regress/regress-1177809.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1178598.js b/test/mjsunit/regress/regress-1178598.js
index f7daf24..9caaec2 100644
--- a/test/mjsunit/regress/regress-1178598.js
+++ b/test/mjsunit/regress/regress-1178598.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1182832.js b/test/mjsunit/regress/regress-1182832.js
index 6496515..6c4fcb4 100644
--- a/test/mjsunit/regress/regress-1182832.js
+++ b/test/mjsunit/regress/regress-1182832.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1187524.js b/test/mjsunit/regress/regress-1187524.js
index b053111..2aeb1c5 100644
--- a/test/mjsunit/regress/regress-1187524.js
+++ b/test/mjsunit/regress/regress-1187524.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1199401.js b/test/mjsunit/regress/regress-1199401.js
index ff8e206..792faea 100644
--- a/test/mjsunit/regress/regress-1199401.js
+++ b/test/mjsunit/regress/regress-1199401.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1199637.js b/test/mjsunit/regress/regress-1199637.js
index 028e108..2c97f9a 100644
--- a/test/mjsunit/regress/regress-1199637.js
+++ b/test/mjsunit/regress/regress-1199637.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1200351.js b/test/mjsunit/regress/regress-1200351.js
index ac79f68..f752a1e 100644
--- a/test/mjsunit/regress/regress-1200351.js
+++ b/test/mjsunit/regress/regress-1200351.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -37,1517 +37,1517 @@
 
 var x = 0;
 try {
-	eval("SetValueOf(typeof(break.prototype.name), Math.max(typeof(break)))")
+  eval("SetValueOf(typeof(break.prototype.name), Math.max(typeof(break)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export Join((void), false.className(), null instanceof continue, return 'a', 0.__defineGetter__(x,function(){native}))")
+  eval("export Join((void), false.className(), null instanceof continue, return 'a', 0.__defineGetter__(x,function(){native}))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ void&&null.push(goto NaN) : Math.max(undef).toText }) { {-1/null,1.isNull} }")
+  eval("with ({ void&&null.push(goto NaN) : Math.max(undef).toText }) { {-1/null,1.isNull} }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new break>>>=native.charCodeAt(-1.valueOf())")
+  eval("new break>>>=native.charCodeAt(-1.valueOf())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Number(this > native)")
+  eval("new Number(this > native)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new {native,0.2}?continue+undef:IsSmi(0.2)")
+  eval("new {native,0.2}?continue+undef:IsSmi(0.2)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = break.toString()&&return continue")
+  eval("const x = break.toString()&&return continue")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (-1==continue.toJSONProtocol, GetFunctionFor(break.call(NaN)), (!new RegExp).prototype.new Object()<<void) { debugger.__defineSetter__(null,function(){continue})>>>=GetFunctionFor(-1) }")
+  eval("for (-1==continue.toJSONProtocol, GetFunctionFor(break.call(NaN)), (!new RegExp).prototype.new Object()<<void) { debugger.__defineSetter__(null,function(){continue})>>>=GetFunctionFor(-1) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (parseFloat(NaN).splice() in null.add(1).className()) { true[0.2]<<x.splice() }")
+  eval("for (parseFloat(NaN).splice() in null.add(1).className()) { true[0.2]<<x.splice() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let (debugger.constructor.valueOf()) { this.sort().true.splice() }")
+  eval("let (debugger.constructor.valueOf()) { this.sort().true.splice() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("unescape(break.toObject()).prototype.new RegExp.continue.__lookupGetter__(x.slice(1, NaN)) = typeof(null.push(0.2))")
+  eval("unescape(break.toObject()).prototype.new RegExp.continue.__lookupGetter__(x.slice(1, NaN)) = typeof(null.push(0.2))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(Iterator(continue.pop()))")
+  eval("new Date(Iterator(continue.pop()))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return new RegExp.shift().concat({debugger,continue}) }; X(return goto 0)")
+  eval("function X(x) { return new RegExp.shift().concat({debugger,continue}) }; X(return goto 0)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(0.add(break)&&x > null)")
+  eval("Instantiate(0.add(break)&&x > null)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ eval(Array(x)) : 1.call('a').superConstructor }) { debugger.lastIndex.toLocaleString() }")
+  eval("with ({ eval(Array(x)) : 1.call('a').superConstructor }) { debugger.lastIndex.toLocaleString() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = return true.__defineGetter__(this,function(){0.2})")
+  eval("x = return true.__defineGetter__(this,function(){0.2})")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new typeof(0)&this.lastIndex")
+  eval("x = new typeof(0)&this.lastIndex")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("String(new RegExp.call(1)).prototype.unescape(parseFloat(-1)) = false<<true.x.lastIndexOf(1)")
+  eval("String(new RegExp.call(1)).prototype.unescape(parseFloat(-1)) = false<<true.x.lastIndexOf(1)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ 1+debugger.valueOf() : continue.join().name() }) { parseInt(true)==undef.sort() }")
+  eval("with ({ 1+debugger.valueOf() : continue.join().name() }) { parseInt(true)==undef.sort() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new RegExp>>0.2.superConstructor.prototype.eval(void).className() = false.join().prototype.name")
+  eval("new RegExp>>0.2.superConstructor.prototype.eval(void).className() = false.join().prototype.name")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export (new Object()?undef:native)")
+  eval("export (new Object()?undef:native)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new null.isNull.slice(x.prototype.value, Iterator(undef))")
+  eval("x = new null.isNull.slice(x.prototype.value, Iterator(undef))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export function () { 0.2 }.unshift()")
+  eval("export function () { 0.2 }.unshift()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Math.max(continue.valueOf())")
+  eval("new Math.max(continue.valueOf())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = return debugger.toObject()")
+  eval("x = return debugger.toObject()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (-1.length+new Object().prototype.name) { case (debugger.constructor.sort()): IsPrimitive(undef.__defineSetter__(undef,function(){native})); break; }")
+  eval("switch (-1.length+new Object().prototype.name) { case (debugger.constructor.sort()): IsPrimitive(undef.__defineSetter__(undef,function(){native})); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete (!new Object().toLocaleString())")
+  eval("delete (!new Object().toLocaleString())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(0<<'a'>>>=new RegExp['a'])")
+  eval("new Date(0<<'a'>>>=new RegExp['a'])")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native {unescape(true),new RegExp.isNull}")
+  eval("native {unescape(true),new RegExp.isNull}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = -1.lastIndexOf(false)?parseFloat(void):Join(null, continue, new Object(), x, break)")
+  eval("const x = -1.lastIndexOf(false)?parseFloat(void):Join(null, continue, new Object(), x, break)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label null/void-break.__lookupGetter__(native)")
+  eval("label null/void-break.__lookupGetter__(native)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(0.2.join().constructor)")
+  eval("new Function(0.2.join().constructor)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label function () { false }.__lookupGetter__(this==1)")
+  eval("label function () { false }.__lookupGetter__(this==1)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(-1.prototype.0.2.unshift())")
+  eval("Instantiate(-1.prototype.0.2.unshift())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new return goto -1")
+  eval("const x = new return goto -1")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new {Number(debugger)}")
+  eval("new {Number(debugger)}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (parseInt(break) instanceof 0.length) { this.(!0.2) }")
+  eval("if (parseInt(break) instanceof 0.length) { this.(!0.2) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(break.superConstructor[throw new false(true)], this.~x)")
+  eval("SetValueOf(break.superConstructor[throw new false(true)], this.~x)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(function () { IsSmi(-1) }, unescape(IsPrimitive(void)))")
+  eval("SetValueOf(function () { IsSmi(-1) }, unescape(IsPrimitive(void)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (new RegExp.join().className() in new Object().length()>>true.toObject()) { parseFloat(escape(debugger)) }")
+  eval("for (new RegExp.join().className() in new Object().length()>>true.toObject()) { parseFloat(escape(debugger)) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new String(debugger).toJSONProtocol")
+  eval("const x = new String(debugger).toJSONProtocol")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(1.indexOf('a')<<break.__lookupGetter__('a'), new Object().null.prototype.new RegExp.charCodeAt(-1))")
+  eval("SetValueOf(1.indexOf('a')<<break.__lookupGetter__('a'), new Object().null.prototype.new RegExp.charCodeAt(-1))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new {parseInt(0)}")
+  eval("const x = new {parseInt(0)}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(void.join().add(escape(undef)))")
+  eval("new Date(void.join().add(escape(undef)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native parseFloat(false.charAt(new RegExp))")
+  eval("native parseFloat(false.charAt(new RegExp))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(~Iterator(void))")
+  eval("new Date(~Iterator(void))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(NaN.shift().toJSONProtocol)")
+  eval("new Function(NaN.shift().toJSONProtocol)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(native-debugger<<continue.slice(x, new RegExp))")
+  eval("new Date(native-debugger<<continue.slice(x, new RegExp))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = parseFloat(~new Object())")
+  eval("x = parseFloat(~new Object())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (null.size/true.add(void) in 0+continue&true.null) { continue.toObject()/throw new true(debugger) }")
+  eval("for (null.size/true.add(void) in 0+continue&true.null) { continue.toObject()/throw new true(debugger) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (Iterator(native+break) in debugger.superConstructor.constructor) { Math.max(0.add(undef)) }")
+  eval("for (Iterator(native+break) in debugger.superConstructor.constructor) { Math.max(0.add(undef)) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new {-1.add(native),true.sort()}")
+  eval("new {-1.add(native),true.sort()}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new {IsSmi(break),throw new 'a'(null)}")
+  eval("new {IsSmi(break),throw new 'a'(null)}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (parseInt(0).length()) { case ('a'.toObject().__defineSetter__(GetFunctionFor(null),function(){(!x)})): IsSmi(void).constructor; break; }")
+  eval("switch (parseInt(0).length()) { case ('a'.toObject().__defineSetter__(GetFunctionFor(null),function(){(!x)})): IsSmi(void).constructor; break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new 0.lastIndexOf(NaN).shift()")
+  eval("x = new 0.lastIndexOf(NaN).shift()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ 0>>>=this.lastIndex : new Object().lastIndexOf(true).toObject() }) { x.lastIndex > 1.__defineSetter__(false,function(){this}) }")
+  eval("with ({ 0>>>=this.lastIndex : new Object().lastIndexOf(true).toObject() }) { x.lastIndex > 1.__defineSetter__(false,function(){this}) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ throw new false(0.2).prototype.name : parseFloat(false)+(!debugger) }) { escape(undef.lastIndex) }")
+  eval("with ({ throw new false(0.2).prototype.name : parseFloat(false)+(!debugger) }) { escape(undef.lastIndex) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Math.pow(0.2).toJSONProtocol.prototype.break.superConstructor.slice(NaN.exec(undef), -1.lastIndexOf(NaN)) = true.splice().length")
+  eval("Math.pow(0.2).toJSONProtocol.prototype.break.superConstructor.slice(NaN.exec(undef), -1.lastIndexOf(NaN)) = true.splice().length")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native continue.className().constructor")
+  eval("native continue.className().constructor")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let (0.2.isNull&undef.toString()) { continue/void+parseInt(null) }")
+  eval("let (0.2.isNull&undef.toString()) { continue/void+parseInt(null) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new Math.pow(break==this)")
+  eval("const x = new Math.pow(break==this)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(continue.__lookupGetter__(null).constructor, debugger.filter(0.2)>>>=this.'a')")
+  eval("SetValueOf(continue.__lookupGetter__(null).constructor, debugger.filter(0.2)>>>=this.'a')")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ 0.2.unshift() > true.size : return Math.max(new RegExp) }) { void.splice().toString() }")
+  eval("with ({ 0.2.unshift() > true.size : return Math.max(new RegExp) }) { void.splice().toString() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new unescape(false).unshift()")
+  eval("new unescape(false).unshift()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return this.true?'a'==this:0.2.__lookupGetter__(void) }; X(Iterator(false).length)")
+  eval("function X(x) { return this.true?'a'==this:0.2.__lookupGetter__(void) }; X(Iterator(false).length)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = function () { null }.__defineSetter__(0.charCodeAt(new Object()),function(){null>>>=new Object()})")
+  eval("const x = function () { null }.__defineSetter__(0.charCodeAt(new Object()),function(){null>>>=new Object()})")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import goto 'a'.charAt(native.className())")
+  eval("import goto 'a'.charAt(native.className())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import 0.2.isNull.__lookupGetter__(debugger.size)")
+  eval("import 0.2.isNull.__lookupGetter__(debugger.size)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (~new Object().push(Array(null)) in new RegExp>>>=void.prototype.name) { goto break.lastIndex }")
+  eval("for (~new Object().push(Array(null)) in new RegExp>>>=void.prototype.name) { goto break.lastIndex }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete String(x).slice(String('a'), parseFloat(false))")
+  eval("delete String(x).slice(String('a'), parseFloat(false))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new parseInt(continue.__defineGetter__(0.2,function(){1}))")
+  eval("new parseInt(continue.__defineGetter__(0.2,function(){1}))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(true.concat(undef)==0.2.new RegExp)")
+  eval("Instantiate(true.concat(undef)==0.2.new RegExp)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return NaN['a']?-1.exec(0):NaN.prototype.this }; X(native.prototype.name.toLocaleString())")
+  eval("function X(x) { return NaN['a']?-1.exec(0):NaN.prototype.this }; X(native.prototype.name.toLocaleString())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (debugger==continue.toObject(), Array(NaN.className()), Math.max(new RegExp).prototype.value) { GetFunctionFor('a').prototype.value }")
+  eval("for (debugger==continue.toObject(), Array(NaN.className()), Math.max(new RegExp).prototype.value) { GetFunctionFor('a').prototype.value }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new parseInt(break)==Array(x)")
+  eval("const x = new parseInt(break)==Array(x)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (parseInt(0.2.charCodeAt(this)), this.continue.prototype.name, native.superConstructor.superConstructor) { Join(0.__defineGetter__(continue,function(){undef}), {1}, parseFloat(0), undef.__defineSetter__(break,function(){null}), x?-1:-1) }")
+  eval("for (parseInt(0.2.charCodeAt(this)), this.continue.prototype.name, native.superConstructor.superConstructor) { Join(0.__defineGetter__(continue,function(){undef}), {1}, parseFloat(0), undef.__defineSetter__(break,function(){null}), x?-1:-1) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export Join(debugger.splice(), parseInt(NaN), new RegExp.pop(), this.false, x.-1)")
+  eval("export Join(debugger.splice(), parseInt(NaN), new RegExp.pop(), this.false, x.-1)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = Math.max(native).charCodeAt(continue==break)")
+  eval("x = Math.max(native).charCodeAt(continue==break)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (void==NaN.sort(), new Object()==new RegExp.toObject(), -1/NaN.unshift()) { GetFunctionFor(true).name() }")
+  eval("for (void==NaN.sort(), new Object()==new RegExp.toObject(), -1/NaN.unshift()) { GetFunctionFor(true).name() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for ((!'a'.join()), ~NaN.__defineGetter__(undef,function(){this}), Math.pow(NaN).__lookupGetter__(typeof(false))) { throw new debugger.toObject()(Math.max(-1)) }")
+  eval("for ((!'a'.join()), ~NaN.__defineGetter__(undef,function(){this}), Math.pow(NaN).__lookupGetter__(typeof(false))) { throw new debugger.toObject()(Math.max(-1)) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (NaN.shift()&&undef&&continue in throw new x(NaN).prototype.-1&x) { return native.toJSONProtocol }")
+  eval("for (NaN.shift()&&undef&&continue in throw new x(NaN).prototype.-1&x) { return native.toJSONProtocol }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new (0).charAt(this.charCodeAt(new Object()))")
+  eval("x = new (0).charAt(this.charCodeAt(new Object()))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return x.valueOf().size }; X(0.2.unshift().unshift())")
+  eval("function X(x) { return x.valueOf().size }; X(0.2.unshift().unshift())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (eval(new Object().valueOf())) { break.prototype.name.__defineGetter__(eval(NaN),function(){Math.max(native)}) }")
+  eval("if (eval(new Object().valueOf())) { break.prototype.name.__defineGetter__(eval(NaN),function(){Math.max(native)}) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (Math.pow(1).isNull in Iterator(continue.length())) { Join(true, 0.2, null, x, new Object()).length }")
+  eval("for (Math.pow(1).isNull in Iterator(continue.length())) { Join(true, 0.2, null, x, new Object()).length }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(0>>>=void.unshift(), void.exec('a').undef.length())")
+  eval("SetValueOf(0>>>=void.unshift(), void.exec('a').undef.length())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete throw new this(0.2).pop()")
+  eval("delete throw new this(0.2).pop()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Iterator(unescape(continue))")
+  eval("new Iterator(unescape(continue))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return unescape(goto debugger) }; X(new RegExp.push(break).name())")
+  eval("function X(x) { return unescape(goto debugger) }; X(new RegExp.push(break).name())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = undef/'a'.indexOf(-1.exec(false))")
+  eval("x = undef/'a'.indexOf(-1.exec(false))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (continue.isNull.filter(this.toText), function () { throw new 'a'(0.2) }, native?break:undef.prototype.return continue) { Array(void.toText) }")
+  eval("for (continue.isNull.filter(this.toText), function () { throw new 'a'(0.2) }, native?break:undef.prototype.return continue) { Array(void.toText) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new this.slice(new Object(), 1).isNull")
+  eval("const x = new this.slice(new Object(), 1).isNull")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (0.2.className().call((!debugger)), native.__defineGetter__(0,function(){x}).name(), null.splice().splice()) { NaN.charCodeAt(new Object()) > true.toString() }")
+  eval("for (0.2.className().call((!debugger)), native.__defineGetter__(0,function(){x}).name(), null.splice().splice()) { NaN.charCodeAt(new Object()) > true.toString() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native false.length?new RegExp instanceof this:Array(undef)")
+  eval("native false.length?new RegExp instanceof this:Array(undef)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new ~0.2.call(typeof(false))")
+  eval("new ~0.2.call(typeof(false))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Number(0.2.sort())")
+  eval("new Number(0.2.sort())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new x.join().shift()")
+  eval("new x.join().shift()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (~new Object().toText) { case (new RegExp.unshift().exec(new RegExp<<debugger)): -1.length.exec(this.isNull); break; }")
+  eval("switch (~new Object().toText) { case (new RegExp.unshift().exec(new RegExp<<debugger)): -1.length.exec(this.isNull); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new parseInt(~true)")
+  eval("new parseInt(~true)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new unescape(debugger.call(null))")
+  eval("new unescape(debugger.call(null))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new GetFunctionFor(0.2).toObject()")
+  eval("const x = new GetFunctionFor(0.2).toObject()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete IsPrimitive(null.join())")
+  eval("delete IsPrimitive(null.join())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (eval(0.2) instanceof debugger.splice() in null.superConstructor==new Object()&void) { Number(0+x) }")
+  eval("for (eval(0.2) instanceof debugger.splice() in null.superConstructor==new Object()&void) { Number(0+x) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let ('a'-continue?null.length():escape(continue)) { return undef.push(false.shift()) }")
+  eval("let ('a'-continue?null.length():escape(continue)) { return undef.push(false.shift()) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (Array(x.length) in 'a'.length().sort()) { goto (new Object()) }")
+  eval("for (Array(x.length) in 'a'.length().sort()) { goto (new Object()) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let (NaN==true.length) { IsPrimitive(0.2).prototype.value }")
+  eval("let (NaN==true.length) { IsPrimitive(0.2).prototype.value }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(return true&&void, new RegExp.toObject().length())")
+  eval("SetValueOf(return true&&void, new RegExp.toObject().length())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Math.pow(void).length")
+  eval("new Math.pow(void).length")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(void.add(continue).charCodeAt(this.toObject()))")
+  eval("new Function(void.add(continue).charCodeAt(this.toObject()))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export Join(break.toObject(), 0.2.isNull, false.call(0), break.filter(break), 1.length())")
+  eval("export Join(break.toObject(), 0.2.isNull, false.call(0), break.filter(break), 1.length())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (1/NaN.__lookupGetter__(undef.prototype.value)) { escape(eval(this)) }")
+  eval("if (1/NaN.__lookupGetter__(undef.prototype.value)) { escape(eval(this)) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(Join(unescape(x), new RegExp.__defineGetter__(debugger,function(){NaN}), 'a'.indexOf(0.2), false.prototype.name, (this)))")
+  eval("new Function(Join(unescape(x), new RegExp.__defineGetter__(debugger,function(){NaN}), 'a'.indexOf(0.2), false.prototype.name, (this)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new Math.pow(native).indexOf(1>>>=-1)")
+  eval("const x = new Math.pow(native).indexOf(1>>>=-1)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new RegExp?native:continue.join().prototype.Math.max(x.__defineSetter__(1,function(){continue})) = parseFloat(parseInt(null))")
+  eval("new RegExp?native:continue.join().prototype.Math.max(x.__defineSetter__(1,function(){continue})) = parseFloat(parseInt(null))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native function () { new RegExp }.new RegExp.pop()")
+  eval("native function () { new RegExp }.new RegExp.pop()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import typeof(new RegExp.valueOf())")
+  eval("import typeof(new RegExp.valueOf())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (0.2.size>>NaN-continue) { case ('a'.push(true).indexOf(NaN.lastIndexOf(-1))): {0.2,x}.toObject(); break; }")
+  eval("switch (0.2.size>>NaN-continue) { case ('a'.push(true).indexOf(NaN.lastIndexOf(-1))): {0.2,x}.toObject(); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (IsSmi(new Object())/false.filter('a')) { function () { Iterator(debugger) } }")
+  eval("if (IsSmi(new Object())/false.filter('a')) { function () { Iterator(debugger) } }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = break.lastIndex.size")
+  eval("x = break.lastIndex.size")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(new Object() > 0.length())")
+  eval("new Function(new Object() > 0.length())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native IsPrimitive(continue)==break.charCodeAt(new Object())")
+  eval("native IsPrimitive(continue)==break.charCodeAt(new Object())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new break.true<<'a'-NaN")
+  eval("new break.true<<'a'-NaN")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Number(-1?'a':-1)")
+  eval("new Number(-1?'a':-1)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (parseFloat('a'.exec(continue)) in (!new RegExp)&&0.2.toObject()) { {true,x}.add(void.prototype.NaN) }")
+  eval("for (parseFloat('a'.exec(continue)) in (!new RegExp)&&0.2.toObject()) { {true,x}.add(void.prototype.NaN) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let (-1.prototype.value.join()) { (!1.prototype.name) }")
+  eval("let (-1.prototype.value.join()) { (!1.prototype.name) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new GetFunctionFor(continue).toJSONProtocol")
+  eval("new GetFunctionFor(continue).toJSONProtocol")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (Math.pow(continue.slice(null, native)), goto (!0), native?1:this.charAt(String(debugger))) { parseFloat(~this) }")
+  eval("for (Math.pow(continue.slice(null, native)), goto (!0), native?1:this.charAt(String(debugger))) { parseFloat(~this) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(debugger.pop().length, new RegExp.isNull.toText)")
+  eval("SetValueOf(debugger.pop().length, new RegExp.isNull.toText)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (typeof(new RegExp.slice(new RegExp, 0)) in native.toLocaleString().lastIndexOf(0.2.length())) { native>>>=new RegExp.length() }")
+  eval("for (typeof(new RegExp.slice(new RegExp, 0)) in native.toLocaleString().lastIndexOf(0.2.length())) { native>>>=new RegExp.length() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native x.join().className()")
+  eval("native x.join().className()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new 0?0:true.toLocaleString()")
+  eval("new 0?0:true.toLocaleString()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = IsPrimitive(0).concat(new Object().name())")
+  eval("x = IsPrimitive(0).concat(new Object().name())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new parseFloat(x)?this.valueOf():IsSmi(x)")
+  eval("x = new parseFloat(x)?this.valueOf():IsSmi(x)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new 'a'.slice(null, -1).shift()")
+  eval("x = new 'a'.slice(null, -1).shift()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label 'a'+void.concat('a'>>>=-1)")
+  eval("label 'a'+void.concat('a'>>>=-1)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(escape(0.length))")
+  eval("new Function(escape(0.length))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = parseInt(0.lastIndexOf(NaN))")
+  eval("const x = parseInt(0.lastIndexOf(NaN))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(null&debugger.valueOf(), 0[false].push(false.add(debugger)))")
+  eval("SetValueOf(null&debugger.valueOf(), 0[false].push(false.add(debugger)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = parseInt(new RegExp.__lookupGetter__(break))")
+  eval("x = parseInt(new RegExp.__lookupGetter__(break))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(~false&&break>>0, new RegExp.lastIndex.add({this}))")
+  eval("SetValueOf(~false&&break>>0, new RegExp.lastIndex.add({this}))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = Join(break, continue, 0, debugger, NaN).toLocaleString()")
+  eval("x = Join(break, continue, 0, debugger, NaN).toLocaleString()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import new Object().sort().superConstructor")
+  eval("import new Object().sort().superConstructor")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new IsSmi(goto -1)")
+  eval("const x = new IsSmi(goto -1)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return Iterator(null).toObject() }; X(-1==new Object()==0.__lookupGetter__(native))")
+  eval("function X(x) { return Iterator(null).toObject() }; X(-1==new Object()==0.__lookupGetter__(native))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native void.join().add(parseFloat(continue))")
+  eval("native void.join().add(parseFloat(continue))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let (function () { -1 }.shift()) { escape(1.unshift()) }")
+  eval("let (function () { -1 }.shift()) { escape(1.unshift()) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(new RegExp.indexOf(1).filter(continue instanceof break))")
+  eval("new Function(new RegExp.indexOf(1).filter(continue instanceof break))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (NaN?continue:NaN.shift()) { native.push(null).add(new Object().superConstructor) }")
+  eval("if (NaN?continue:NaN.shift()) { native.push(null).add(new Object().superConstructor) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return new Object().length().toText }; X(debugger.indexOf(this).toText)")
+  eval("function X(x) { return new Object().length().toText }; X(debugger.indexOf(this).toText)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new Object().call('a').charCodeAt(native.size)")
+  eval("const x = new Object().call('a').charCodeAt(native.size)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new function () { continue }.add(true.slice(continue, new RegExp))")
+  eval("new function () { continue }.add(true.slice(continue, new RegExp))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x[native] instanceof -1.join().prototype.this.null.size = 0.2.prototype.x+0.2.indexOf(false)")
+  eval("x[native] instanceof -1.join().prototype.this.null.size = 0.2.prototype.x+0.2.indexOf(false)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (this instanceof new RegExp.splice() in null>>>=new RegExp.valueOf()) { function () { unescape(1) } }")
+  eval("for (this instanceof new RegExp.splice() in null>>>=new RegExp.valueOf()) { function () { unescape(1) } }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (true.shift()/native.null in undef.call(NaN).isNull) { native+this-x.size }")
+  eval("for (true.shift()/native.null in undef.call(NaN).isNull) { native+this-x.size }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return false.pop()<<Join(continue, false, break, NaN, -1) }; X(IsSmi(debugger>>x))")
+  eval("function X(x) { return false.pop()<<Join(continue, false, break, NaN, -1) }; X(IsSmi(debugger>>x))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if ({parseFloat(null),Math.max(native)}) { 0.2-new Object().__lookupGetter__(eval(new Object())) }")
+  eval("if ({parseFloat(null),Math.max(native)}) { 0.2-new Object().__lookupGetter__(eval(new Object())) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(Array(1).toLocaleString(), null.name().exec(undef.filter(false)))")
+  eval("SetValueOf(Array(1).toLocaleString(), null.name().exec(undef.filter(false)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(true.filter(this).pop())")
+  eval("new Function(true.filter(this).pop())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let (break.lastIndex.superConstructor) { new Object().toString().length() }")
+  eval("let (break.lastIndex.superConstructor) { new Object().toString().length() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label (!0.2/debugger)")
+  eval("label (!0.2/debugger)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ NaN.concat(new RegExp)+Join(1, false, new Object(), new Object(), x) : unescape(x).concat(Iterator(-1)) }) { 'a'.isNull.__lookupGetter__(this+native) }")
+  eval("with ({ NaN.concat(new RegExp)+Join(1, false, new Object(), new Object(), x) : unescape(x).concat(Iterator(-1)) }) { 'a'.isNull.__lookupGetter__(this+native) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export break.name()/IsPrimitive(this)")
+  eval("export break.name()/IsPrimitive(this)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new {null}.prototype.value")
+  eval("new {null}.prototype.value")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new true+false.__lookupGetter__(null&continue)")
+  eval("new true+false.__lookupGetter__(null&continue)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (-1.push(new RegExp)[void.valueOf()]) { new RegExp.className().__lookupGetter__(Array(0)) }")
+  eval("if (-1.push(new RegExp)[void.valueOf()]) { new RegExp.className().__lookupGetter__(Array(0)) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export NaN.__lookupGetter__(undef).__lookupGetter__(void.isNull)")
+  eval("export NaN.__lookupGetter__(undef).__lookupGetter__(void.isNull)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ ~new RegExp.filter(undef&&this) : String(continue)<<NaN.toText }) { this.exec(this).length }")
+  eval("with ({ ~new RegExp.filter(undef&&this) : String(continue)<<NaN.toText }) { this.exec(this).length }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (true&void.exec(void.exec(continue)) in Join('a', undef, new Object(), continue, x) instanceof {undef}) { unescape(-1.prototype.name) }")
+  eval("for (true&void.exec(void.exec(continue)) in Join('a', undef, new Object(), continue, x) instanceof {undef}) { unescape(-1.prototype.name) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import void.push(true).join()")
+  eval("import void.push(true).join()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf({break}&x.name(), 1.charAt(false).slice(continue.superConstructor, this&&break))")
+  eval("SetValueOf({break}&x.name(), 1.charAt(false).slice(continue.superConstructor, this&&break))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let (this.call(this) > Iterator(continue)) { new Object().prototype.value.slice(1.slice(native, -1), (!false)) }")
+  eval("let (this.call(this) > Iterator(continue)) { new Object().prototype.value.slice(1.slice(native, -1), (!false)) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export parseInt(new RegExp>>>=x)")
+  eval("export parseInt(new RegExp>>>=x)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (escape(x==debugger), NaN.shift()&debugger?false:0.2, (!new RegExp)&goto break) { unescape(x.toText) }")
+  eval("for (escape(x==debugger), NaN.shift()&debugger?false:0.2, (!new RegExp)&goto break) { unescape(x.toText) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(throw new NaN.toObject()(this?break:true))")
+  eval("new Date(throw new NaN.toObject()(this?break:true))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new (typeof(this))")
+  eval("new (typeof(this))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (unescape('a'/0) in ~new Object().lastIndex) { IsSmi(0).push(0.concat(0.2)) }")
+  eval("for (unescape('a'/0) in ~new Object().lastIndex) { IsSmi(0).push(0.concat(0.2)) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("(!new RegExp)[0.2 > new Object()].prototype.Number(debugger.join()) = native&-1.size")
+  eval("(!new RegExp)[0.2 > new Object()].prototype.Number(debugger.join()) = native&-1.size")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new false.toJSONProtocol&&0.2.constructor")
+  eval("new false.toJSONProtocol&&0.2.constructor")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (~0?0.2:undef in new RegExp.charCodeAt(0).prototype.name) { NaN.toLocaleString().splice() }")
+  eval("for (~0?0.2:undef in new RegExp.charCodeAt(0).prototype.name) { NaN.toLocaleString().splice() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (~IsPrimitive(new RegExp), true.toString().size, null.charCodeAt('a') > null.concat(0)) { break.toJSONProtocol/IsPrimitive(break) }")
+  eval("for (~IsPrimitive(new RegExp), true.toString().size, null.charCodeAt('a') > null.concat(0)) { break.toJSONProtocol/IsPrimitive(break) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new parseInt(new Object()).lastIndexOf(NaN > void)")
+  eval("new parseInt(new Object()).lastIndexOf(NaN > void)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export break.splice()&&-1.prototype.new Object()")
+  eval("export break.splice()&&-1.prototype.new Object()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("{{true,0}}.prototype.break.length.splice() = 'a'.toText.superConstructor")
+  eval("{{true,0}}.prototype.break.length.splice() = 'a'.toText.superConstructor")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let (debugger>>>=continue > break.exec(1)) { Math.pow(new RegExp)==NaN>>>=0.2 }")
+  eval("let (debugger>>>=continue > break.exec(1)) { Math.pow(new RegExp)==NaN>>>=0.2 }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ 0.2==0.2/goto true : IsSmi(native).isNull }) { throw new {x,null}(false.className()) }")
+  eval("with ({ 0.2==0.2/goto true : IsSmi(native).isNull }) { throw new {x,null}(false.className()) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = {false.concat(null),Math.pow(NaN)}")
+  eval("x = {false.concat(null),Math.pow(NaN)}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export Array(null).add(NaN.valueOf())")
+  eval("export Array(null).add(NaN.valueOf())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (parseFloat(new Object()==true) in GetFunctionFor('a'&false)) { native&undef.toJSONProtocol }")
+  eval("for (parseFloat(new Object()==true) in GetFunctionFor('a'&false)) { native&undef.toJSONProtocol }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new {eval(null),(debugger)}")
+  eval("x = new {eval(null),(debugger)}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import {this.0,debugger.filter(NaN)}")
+  eval("import {this.0,debugger.filter(NaN)}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import break.charAt(-1)<<false.__defineSetter__(0,function(){x})")
+  eval("import break.charAt(-1)<<false.__defineSetter__(0,function(){x})")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = goto false > new Object()")
+  eval("x = goto false > new Object()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("null.superConstructor[debugger.isNull].prototype.Math.max('a').shift() = parseInt(0).size")
+  eval("null.superConstructor[debugger.isNull].prototype.Math.max('a').shift() = parseInt(0).size")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native eval(void.add(break))")
+  eval("native eval(void.add(break))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(x > void.join())")
+  eval("new Date(x > void.join())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ {this.toObject()} : Number(NaN).toJSONProtocol }) { 0.2.className().prototype.name }")
+  eval("with ({ {this.toObject()} : Number(NaN).toJSONProtocol }) { 0.2.className().prototype.name }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (false.__defineGetter__(undef,function(){undef}).exec(NaN.splice())) { typeof(Join(void, new RegExp, break, -1, -1)) }")
+  eval("if (false.__defineGetter__(undef,function(){undef}).exec(NaN.splice())) { typeof(Join(void, new RegExp, break, -1, -1)) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (false.splice().toObject(), continue.name().size, Join(void?debugger:this, new RegExp.__defineSetter__(NaN,function(){NaN}), x.unshift(), this.true, parseInt(break))) { undef<<continue.toText }")
+  eval("for (false.splice().toObject(), continue.name().size, Join(void?debugger:this, new RegExp.__defineSetter__(NaN,function(){NaN}), x.unshift(), this.true, parseInt(break))) { undef<<continue.toText }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let (this.0.indexOf(break)) { break.charAt(this).unshift() }")
+  eval("let (this.0.indexOf(break)) { break.charAt(this).unshift() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import Join(new Object().splice(), this instanceof 1, parseFloat(NaN), undef.concat(x), void.className())")
+  eval("import Join(new Object().splice(), this instanceof 1, parseFloat(NaN), undef.concat(x), void.className())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(goto NaN.toString())")
+  eval("new Function(goto NaN.toString())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label 'a'<<break.shift()")
+  eval("label 'a'<<break.shift()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = Iterator(continue)[new Object()>>NaN]")
+  eval("const x = Iterator(continue)[new Object()>>NaN]")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = Join(new RegExp, 'a', this, void, true)>>>=continue>>native")
+  eval("x = Join(new RegExp, 'a', this, void, true)>>>=continue>>native")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import new Object().toJSONProtocol.splice()")
+  eval("import new Object().toJSONProtocol.splice()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return undef.__defineSetter__(native,function(){void}).toJSONProtocol }; X(eval(x).charCodeAt('a'.concat(true)))")
+  eval("function X(x) { return undef.__defineSetter__(native,function(){void}).toJSONProtocol }; X(eval(x).charCodeAt('a'.concat(true)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(throw new 0.2.__defineGetter__(NaN,function(){-1})(void&&new RegExp))")
+  eval("Instantiate(throw new 0.2.__defineGetter__(NaN,function(){-1})(void&&new RegExp))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = 0.unshift() > IsSmi(NaN)")
+  eval("const x = 0.unshift() > IsSmi(NaN)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label x.call(null).lastIndex")
+  eval("label x.call(null).lastIndex")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(IsSmi(0.2.add(0)), x.add(break).this.__defineGetter__(undef,function(){new RegExp}))")
+  eval("SetValueOf(IsSmi(0.2.add(0)), x.add(break).this.__defineGetter__(undef,function(){new RegExp}))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native Number(this).toObject()")
+  eval("native Number(this).toObject()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new NaN.shift().add(String(new Object()))")
+  eval("new NaN.shift().add(String(new Object()))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new null.name().splice()")
+  eval("new null.name().splice()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = 1.undef.push(new Object().call(null))")
+  eval("const x = 1.undef.push(new Object().call(null))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(parseInt(1).size)")
+  eval("new Function(parseInt(1).size)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = this.x.sort()")
+  eval("const x = this.x.sort()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(continue.valueOf().prototype.new RegExp.splice())")
+  eval("Instantiate(continue.valueOf().prototype.new RegExp.splice())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(this.charAt(continue)?undef+'a':unescape(1))")
+  eval("Instantiate(this.charAt(continue)?undef+'a':unescape(1))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf({throw new 'a'(0.2),void.lastIndexOf(NaN)}, Math.pow(new Object().className()))")
+  eval("SetValueOf({throw new 'a'(0.2),void.lastIndexOf(NaN)}, Math.pow(new Object().className()))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (1.slice(new Object(), this).valueOf()) { parseInt(true).pop() }")
+  eval("if (1.slice(new Object(), this).valueOf()) { parseInt(true).pop() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ 0.2.superConstructor.lastIndex : goto debugger<<Join(undef, 1, true, undef, debugger) }) { function () { NaN }.prototype.name }")
+  eval("with ({ 0.2.superConstructor.lastIndex : goto debugger<<Join(undef, 1, true, undef, debugger) }) { function () { NaN }.prototype.name }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("-1.exec(debugger).length.prototype.debugger > null.slice(Iterator(void), continue.concat(0)) = parseInt(throw new 1(1))")
+  eval("-1.exec(debugger).length.prototype.debugger > null.slice(Iterator(void), continue.concat(0)) = parseInt(throw new 1(1))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(new Object().constructor.call(Number(1)))")
+  eval("new Date(new Object().constructor.call(Number(1)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new null.unshift().call(escape(x))")
+  eval("const x = new null.unshift().call(escape(x))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (Math.pow(native).toLocaleString()) { case (false instanceof native.join()): Math.pow(NaN).size; break; }")
+  eval("switch (Math.pow(native).toLocaleString()) { case (false instanceof native.join()): Math.pow(NaN).size; break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label function () { new Object() }.prototype.true.size")
+  eval("label function () { new Object() }.prototype.true.size")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = Join('a', 0.2, false, new Object(), void).continue.className()")
+  eval("const x = Join('a', 0.2, false, new Object(), void).continue.className()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = IsPrimitive(break.__lookupGetter__(-1))")
+  eval("const x = IsPrimitive(break.__lookupGetter__(-1))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new Object()>>0.2.prototype.name")
+  eval("x = new Object()>>0.2.prototype.name")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new IsPrimitive(new Object()).shift()")
+  eval("const x = new IsPrimitive(new Object()).shift()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (Array(parseInt(break))) { 'a'.toString().unshift() }")
+  eval("if (Array(parseInt(break))) { 'a'.toString().unshift() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = return 0.2>>>=-1?undef:undef")
+  eval("const x = return 0.2>>>=-1?undef:undef")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Object().splice().unshift().prototype.null&&native.__lookupGetter__(undef>>>=NaN) = (1<<break)")
+  eval("new Object().splice().unshift().prototype.null&&native.__lookupGetter__(undef>>>=NaN) = (1<<break)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete NaN.charAt(1).concat(NaN.0.2)")
+  eval("delete NaN.charAt(1).concat(NaN.0.2)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(new RegExp.sort().toJSONProtocol)")
+  eval("Instantiate(new RegExp.sort().toJSONProtocol)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return GetFunctionFor(false).lastIndexOf(1.shift()) }; X(this.0.2.charCodeAt(0.2))")
+  eval("function X(x) { return GetFunctionFor(false).lastIndexOf(1.shift()) }; X(this.0.2.charCodeAt(0.2))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (goto NaN.toObject(), ~true.'a', parseInt(debugger)+eval(false)) { eval(0.2.constructor) }")
+  eval("for (goto NaN.toObject(), ~true.'a', parseInt(debugger)+eval(false)) { eval(0.2.constructor) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (parseInt(debugger).pop()) { case (this.push(true).valueOf()): Join(continue, debugger, native, native, debugger).filter(Array(continue)); break; }")
+  eval("switch (parseInt(debugger).pop()) { case (this.push(true).valueOf()): Join(continue, debugger, native, native, debugger).filter(Array(continue)); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new debugger.sort() instanceof this>>1")
+  eval("x = new debugger.sort() instanceof this>>1")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ parseFloat(false).prototype.(!new Object()) : {unescape(-1)} }) { Math.max(new RegExp.superConstructor) }")
+  eval("with ({ parseFloat(false).prototype.(!new Object()) : {unescape(-1)} }) { Math.max(new RegExp.superConstructor) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate({Math.pow(break)})")
+  eval("Instantiate({Math.pow(break)})")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import typeof(break.valueOf())")
+  eval("import typeof(break.valueOf())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(Math.pow(-1[new RegExp]))")
+  eval("Instantiate(Math.pow(-1[new RegExp]))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native IsPrimitive(1).concat({x,null})")
+  eval("native IsPrimitive(1).concat({x,null})")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("NaN.length.prototype.value.prototype.function () { null==new Object() } = break.name()&IsPrimitive(0)")
+  eval("NaN.length.prototype.value.prototype.function () { null==new Object() } = break.name()&IsPrimitive(0)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete NaN.prototype.-1.toString()")
+  eval("delete NaN.prototype.-1.toString()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new continue.unshift()+parseFloat(undef)")
+  eval("new continue.unshift()+parseFloat(undef)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new NaN-break.call(false.pop())")
+  eval("const x = new NaN-break.call(false.pop())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native new RegExp.exec(break).pop()")
+  eval("native new RegExp.exec(break).pop()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf({'a',null}.prototype.value, 1.shift() instanceof {'a',0})")
+  eval("SetValueOf({'a',null}.prototype.value, 1.shift() instanceof {'a',0})")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (debugger.valueOf().size, function () { x.unshift() }, IsSmi(1)&&true==native) { new Object().__defineGetter__(this,function(){'a'})&&eval(native) }")
+  eval("for (debugger.valueOf().size, function () { x.unshift() }, IsSmi(1)&&true==native) { new Object().__defineGetter__(this,function(){'a'})&&eval(native) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export 'a'.pop().charCodeAt(x.className())")
+  eval("export 'a'.pop().charCodeAt(x.className())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export String(IsSmi(debugger))")
+  eval("export String(IsSmi(debugger))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("typeof(debugger).valueOf().prototype.(1).lastIndexOf(this.break) = x.prototype.name.toLocaleString()")
+  eval("typeof(debugger).valueOf().prototype.(1).lastIndexOf(this.break) = x.prototype.name.toLocaleString()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native Array(typeof(false))")
+  eval("native Array(typeof(false))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(1.__defineGetter__(1,function(){1}).null.constructor)")
+  eval("new Function(1.__defineGetter__(1,function(){1}).null.constructor)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = 1.charAt(0).toObject()")
+  eval("x = 1.charAt(0).toObject()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(Math.max('a'.filter(new Object())))")
+  eval("new Date(Math.max('a'.filter(new Object())))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(void.prototype.name.unshift())")
+  eval("new Date(void.prototype.name.unshift())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (-1.toJSONProtocol.call(-1.size) in ~x.sort()) { eval(0&debugger) }")
+  eval("for (-1.toJSONProtocol.call(-1.size) in ~x.sort()) { eval(0&debugger) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for ('a'==undef.join() in Math.pow(IsSmi(false))) { undef > this>>goto x }")
+  eval("for ('a'==undef.join() in Math.pow(IsSmi(false))) { undef > this>>goto x }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate('a'.constructor.isNull)")
+  eval("Instantiate('a'.constructor.isNull)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (GetFunctionFor(this.slice(0.2, this)), this.prototype.void?null.unshift():native.className(), Number(new Object().call(-1))) { 0.splice() > debugger&&this }")
+  eval("for (GetFunctionFor(this.slice(0.2, this)), this.prototype.void?null.unshift():native.className(), Number(new Object().call(-1))) { 0.splice() > debugger&&this }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ {goto new RegExp,Join(new Object(), native, continue, -1, x)} : NaN&x/{0,break} }) { this.lastIndexOf(new RegExp).join() }")
+  eval("with ({ {goto new RegExp,Join(new Object(), native, continue, -1, x)} : NaN&x/{0,break} }) { this.lastIndexOf(new RegExp).join() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let (typeof(break.length())) { native&&false.sort() }")
+  eval("let (typeof(break.length())) { native&&false.sort() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new parseFloat(-1 instanceof break)")
+  eval("x = new parseFloat(-1 instanceof break)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label throw new continue.unshift()(null.shift())")
+  eval("label throw new continue.unshift()(null.shift())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import Math.max(0.2.toLocaleString())")
+  eval("import Math.max(0.2.toLocaleString())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return false.unshift().className() }; X(escape(NaN&NaN))")
+  eval("function X(x) { return false.unshift().className() }; X(escape(NaN&NaN))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(Join(native.toText, goto x, 0.2.splice(), Join('a', 0, void, NaN, 1), eval(native)))")
+  eval("new Date(Join(native.toText, goto x, 0.2.splice(), Join('a', 0, void, NaN, 1), eval(native)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (GetFunctionFor(true.prototype.name)) { parseInt(NaN).toLocaleString() }")
+  eval("if (GetFunctionFor(true.prototype.name)) { parseInt(NaN).toLocaleString() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new escape(native).__defineSetter__(return native,function(){undef > native})")
+  eval("new escape(native).__defineSetter__(return native,function(){undef > native})")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new typeof(true > 'a')")
+  eval("const x = new typeof(true > 'a')")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (debugger.prototype.0.2<<new RegExp+false) { case (native.splice().filter({x})): false&true.indexOf(1.__defineGetter__(native,function(){continue})); break; }")
+  eval("switch (debugger.prototype.0.2<<new RegExp+false) { case (native.splice().filter({x})): false&true.indexOf(1.__defineGetter__(native,function(){continue})); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label true-NaN.prototype.native.shift()")
+  eval("label true-NaN.prototype.native.shift()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new typeof(new RegExp.splice())")
+  eval("new typeof(new RegExp.splice())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (function () { this.NaN }) { case (this.continue.prototype.parseFloat(false)): IsPrimitive(new Object()-'a'); break; }")
+  eval("switch (function () { this.NaN }) { case (this.continue.prototype.parseFloat(false)): IsPrimitive(new Object()-'a'); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export break.__lookupGetter__(debugger).indexOf(native.pop())")
+  eval("export break.__lookupGetter__(debugger).indexOf(native.pop())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (GetFunctionFor(NaN.lastIndex)) { case (new RegExp.lastIndex.toLocaleString()): NaN.join().indexOf(eval(-1)); break; }")
+  eval("switch (GetFunctionFor(NaN.lastIndex)) { case (new RegExp.lastIndex.toLocaleString()): NaN.join().indexOf(eval(-1)); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native {void.charAt(true)}")
+  eval("native {void.charAt(true)}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new new Object()==NaN.join()")
+  eval("new new Object()==NaN.join()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(typeof(Array(new Object())))")
+  eval("new Date(typeof(Array(new Object())))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label throw new (false)(eval(x))")
+  eval("label throw new (false)(eval(x))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new new RegExp.size.charAt(true > -1)")
+  eval("new new RegExp.size.charAt(true > -1)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = debugger.toObject().charAt(this<<undef)")
+  eval("x = debugger.toObject().charAt(this<<undef)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ 'a'.valueOf()+parseInt(undef) : IsPrimitive(null).lastIndex }) { NaN.toObject().isNull }")
+  eval("with ({ 'a'.valueOf()+parseInt(undef) : IsPrimitive(null).lastIndex }) { NaN.toObject().isNull }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new new Object()&&void.lastIndexOf(0.2.splice())")
+  eval("x = new new Object()&&void.lastIndexOf(0.2.splice())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ 1+1.name() : Join(Math.pow(debugger), new RegExp-1, x > 1, x<<-1, new RegExp.size) }) { undef[undef].size }")
+  eval("with ({ 1+1.name() : Join(Math.pow(debugger), new RegExp-1, x > 1, x<<-1, new RegExp.size) }) { undef[undef].size }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete native.call(-1).isNull")
+  eval("delete native.call(-1).isNull")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (new Object()>>>=break==Math.pow(debugger)) { IsPrimitive(this).lastIndex }")
+  eval("if (new Object()>>>=break==Math.pow(debugger)) { IsPrimitive(this).lastIndex }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for ((!x&&new RegExp) in undef.toLocaleString().slice(new RegExp.indexOf(NaN), IsPrimitive(-1))) { false.size+debugger[x] }")
+  eval("for ((!x&&new RegExp) in undef.toLocaleString().slice(new RegExp.indexOf(NaN), IsPrimitive(-1))) { false.size+debugger[x] }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import 0.length.__defineGetter__(0.2.shift(),function(){'a'.className()})")
+  eval("import 0.length.__defineGetter__(0.2.shift(),function(){'a'.className()})")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(goto new Object().push(void))")
+  eval("Instantiate(goto new Object().push(void))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ Array(this.0) : parseFloat(void).pop() }) { escape(true).slice(continue.lastIndex, false.toObject()) }")
+  eval("with ({ Array(this.0) : parseFloat(void).pop() }) { escape(true).slice(continue.lastIndex, false.toObject()) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new native==true.filter({NaN,-1})")
+  eval("new native==true.filter({NaN,-1})")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for ('a'.__defineSetter__(continue,function(){-1}).unshift(), Array(undef).toLocaleString(), undef.__lookupGetter__(void).toLocaleString()) { parseInt(false/native) }")
+  eval("for ('a'.__defineSetter__(continue,function(){-1}).unshift(), Array(undef).toLocaleString(), undef.__lookupGetter__(void).toLocaleString()) { parseInt(false/native) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("this.x<<false.prototype.true.toLocaleString()==NaN.pop() = this.superConstructor>>Math.max(true)")
+  eval("this.x<<false.prototype.true.toLocaleString()==NaN.pop() = this.superConstructor>>Math.max(true)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return this.prototype.name.splice() }; X(unescape(x).__lookupGetter__(Number(debugger)))")
+  eval("function X(x) { return this.prototype.name.splice() }; X(unescape(x).__lookupGetter__(Number(debugger)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new (!NaN).unshift()")
+  eval("x = new (!NaN).unshift()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(escape(Iterator(this)))")
+  eval("new Function(escape(Iterator(this)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return Number(new RegExp)<<this?true:-1 }; X(Number(null).lastIndex)")
+  eval("function X(x) { return Number(new RegExp)<<this?true:-1 }; X(Number(null).lastIndex)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export this.void.splice()")
+  eval("export this.void.splice()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (this.prototype.null.sort() in -1.className()&void.filter(new Object())) { GetFunctionFor(new Object()).pop() }")
+  eval("for (this.prototype.null.sort() in -1.className()&void.filter(new Object())) { GetFunctionFor(new Object()).pop() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label 0[break].sort()")
+  eval("label 0[break].sort()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (null.length().toString(), eval(-1).toObject(), (!continue.concat(continue))) { true.name()/native<<new RegExp }")
+  eval("for (null.length().toString(), eval(-1).toObject(), (!continue.concat(continue))) { true.name()/native<<new RegExp }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (unescape(null).sort(), Number(undef).charCodeAt(IsPrimitive(NaN)), null>>true/null.join()) { 0.2.toObject() > IsPrimitive(new RegExp) }")
+  eval("for (unescape(null).sort(), Number(undef).charCodeAt(IsPrimitive(NaN)), null>>true/null.join()) { 0.2.toObject() > IsPrimitive(new RegExp) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date({NaN,native}&&1+undef)")
+  eval("new Date({NaN,native}&&1+undef)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(IsPrimitive(undef>>>=1))")
+  eval("Instantiate(IsPrimitive(undef>>>=1))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (Join(true, 'a', true, 1, NaN).add({1}), GetFunctionFor(new Object().push(new Object())), goto 1.length) { Math.pow(GetFunctionFor(native)) }")
+  eval("for (Join(true, 'a', true, 1, NaN).add({1}), GetFunctionFor(new Object().push(new Object())), goto 1.length) { Math.pow(GetFunctionFor(native)) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return break.isNull > parseInt(continue) }; X((new RegExp instanceof 1))")
+  eval("function X(x) { return break.isNull > parseInt(continue) }; X((new RegExp instanceof 1))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ Number(false).indexOf(x instanceof new Object()) : function () { x.toString() } }) { false.name().indexOf(GetFunctionFor(null)) }")
+  eval("with ({ Number(false).indexOf(x instanceof new Object()) : function () { x.toString() } }) { false.name().indexOf(GetFunctionFor(null)) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date('a'.constructor.prototype.name)")
+  eval("new Date('a'.constructor.prototype.name)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("GetFunctionFor(void&new Object()).prototype.debugger.add(null)[void.unshift()] = new RegExp.isNull.Iterator(this)")
+  eval("GetFunctionFor(void&new Object()).prototype.debugger.add(null)[void.unshift()] = new RegExp.isNull.Iterator(this)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete false?break:undef.constructor")
+  eval("delete false?break:undef.constructor")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ (native.filter(1)) : eval(this&&0.2) }) { undef.length instanceof new Object().toText }")
+  eval("with ({ (native.filter(1)) : eval(this&&0.2) }) { undef.length instanceof new Object().toText }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export String(break.lastIndexOf(null))")
+  eval("export String(break.lastIndexOf(null))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label (!Iterator(new RegExp))")
+  eval("label (!Iterator(new RegExp))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(String(null==-1), {1&0})")
+  eval("SetValueOf(String(null==-1), {1&0})")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(parseInt('a' > 0))")
+  eval("new Date(parseInt('a' > 0))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(debugger.toJSONProtocol.indexOf(escape(0)), this.filter(null).__defineSetter__(continue.break,function(){debugger>>null}))")
+  eval("SetValueOf(debugger.toJSONProtocol.indexOf(escape(0)), this.filter(null).__defineSetter__(continue.break,function(){debugger>>null}))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("this.name().length().prototype.goto false.exec(true.charCodeAt(continue)) = Join(-1-false, undef.superConstructor, 'a'.shift(), (!x), NaN.this)")
+  eval("this.name().length().prototype.goto false.exec(true.charCodeAt(continue)) = Join(-1-false, undef.superConstructor, 'a'.shift(), (!x), NaN.this)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(typeof(new RegExp).sort())")
+  eval("new Function(typeof(new RegExp).sort())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new 0.2.concat(x).splice()")
+  eval("new 0.2.concat(x).splice()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (goto void.indexOf(throw new x(1)), typeof(return new RegExp), IsPrimitive(-1).add(void.lastIndexOf(debugger))) { null.indexOf(void).toText }")
+  eval("for (goto void.indexOf(throw new x(1)), typeof(return new RegExp), IsPrimitive(-1).add(void.lastIndexOf(debugger))) { null.indexOf(void).toText }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("return new RegExp.pop().prototype.String(x.toObject()) = 1.superConstructor.charCodeAt(new RegExp.charCodeAt(null))")
+  eval("return new RegExp.pop().prototype.String(x.toObject()) = 1.superConstructor.charCodeAt(new RegExp.charCodeAt(null))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new null&true.prototype.name")
+  eval("new null&true.prototype.name")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = -1>>>=NaN.indexOf((debugger))")
+  eval("const x = -1>>>=NaN.indexOf((debugger))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new parseFloat(null).splice()")
+  eval("const x = new parseFloat(null).splice()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import -1.lastIndexOf(new RegExp) instanceof throw new void(0.2)")
+  eval("import -1.lastIndexOf(new RegExp) instanceof throw new void(0.2)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if ((0.shift())) { Join(IsPrimitive(-1), break.__defineSetter__(true,function(){break}), parseInt(null), parseFloat(break), true/null) }")
+  eval("if ((0.shift())) { Join(IsPrimitive(-1), break.__defineSetter__(true,function(){break}), parseInt(null), parseFloat(break), true/null) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new escape(1 > continue)")
+  eval("x = new escape(1 > continue)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (parseInt(undef)>>false.filter(continue)) { case (this.undef/new Object()): 'a'.toJSONProtocol.__defineGetter__(new RegExp-undef,function(){parseFloat(new RegExp)}); break; }")
+  eval("switch (parseInt(undef)>>false.filter(continue)) { case (this.undef/new Object()): 'a'.toJSONProtocol.__defineGetter__(new RegExp-undef,function(){parseFloat(new RegExp)}); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("{void}.shift().prototype.this.Array(new Object()) = {0.2,new RegExp}.lastIndexOf(break.splice())")
+  eval("{void}.shift().prototype.this.Array(new Object()) = {0.2,new RegExp}.lastIndexOf(break.splice())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new continue&&new Object().lastIndexOf(new Object() instanceof 1)")
+  eval("new continue&&new Object().lastIndexOf(new Object() instanceof 1)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (throw new 'a'.exec(x)(return false), native/void.constructor, {native}==true.toLocaleString()) { goto 1 instanceof 1.isNull }")
+  eval("for (throw new 'a'.exec(x)(return false), native/void.constructor, {native}==true.toLocaleString()) { goto 1 instanceof 1.isNull }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (break.concat(break) > native>>>=-1, (debugger.x), Join(x, void, void, new RegExp, null).name()) { void.charCodeAt(true).valueOf() }")
+  eval("for (break.concat(break) > native>>>=-1, (debugger.x), Join(x, void, void, new RegExp, null).name()) { void.charCodeAt(true).valueOf() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new 'a'>>0 instanceof new Object().push(new RegExp)")
+  eval("const x = new 'a'>>0 instanceof new Object().push(new RegExp)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (return ~break) { break.__defineGetter__(break,function(){-1}).shift() }")
+  eval("if (return ~break) { break.__defineGetter__(break,function(){-1}).shift() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(Join(null, -1, undef, null, 0).toString())")
+  eval("Instantiate(Join(null, -1, undef, null, 0).toString())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let ({new RegExp,void}.slice(break.isNull, false.shift())) { eval(debugger.slice(this, 1)) }")
+  eval("let ({new RegExp,void}.slice(break.isNull, false.shift())) { eval(debugger.slice(this, 1)) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return {GetFunctionFor(0)} }; X('a'.prototype.debugger.concat(void.constructor))")
+  eval("function X(x) { return {GetFunctionFor(0)} }; X('a'.prototype.debugger.concat(void.constructor))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let (~true instanceof continue) { escape(new RegExp.toObject()) }")
+  eval("let (~true instanceof continue) { escape(new RegExp.toObject()) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("escape(0[native]).prototype.debugger.add(1).unshift() = (true.join())")
+  eval("escape(0[native]).prototype.debugger.add(1).unshift() = (true.join())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (unescape(void).length, undef.toObject() instanceof x.toObject(), 0.2+true.concat(true.__lookupGetter__(this))) { (x).toJSONProtocol }")
+  eval("for (unescape(void).length, undef.toObject() instanceof x.toObject(), 0.2+true.concat(true.__lookupGetter__(this))) { (x).toJSONProtocol }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(escape(null).__lookupGetter__(undef.size))")
+  eval("Instantiate(escape(null).__lookupGetter__(undef.size))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label Array(continue[false])")
+  eval("label Array(continue[false])")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return Number(this&&false) }; X(NaN.toJSONProtocol.toJSONProtocol)")
+  eval("function X(x) { return Number(this&&false) }; X(NaN.toJSONProtocol.toJSONProtocol)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("null.toString().shift().prototype.Array(x).__lookupGetter__('a'.prototype.x) = {1.length,break.join()}")
+  eval("null.toString().shift().prototype.Array(x).__lookupGetter__('a'.prototype.x) = {1.length,break.join()}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new 1.charCodeAt(break)+IsSmi(false)")
+  eval("x = new 1.charCodeAt(break)+IsSmi(false)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(String(this) > 0.2.toText, new RegExp.length.lastIndexOf(1<<0.2))")
+  eval("SetValueOf(String(this) > 0.2.toText, new RegExp.length.lastIndexOf(1<<0.2))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (new RegExp.pop().charAt(IsSmi(new RegExp))) { case (native.indexOf(this)/native.lastIndex): this.debugger.indexOf(debugger); break; }")
+  eval("switch (new RegExp.pop().charAt(IsSmi(new RegExp))) { case (native.indexOf(this)/native.lastIndex): this.debugger.indexOf(debugger); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(Number(x)[debugger.prototype.break])")
+  eval("new Date(Number(x)[debugger.prototype.break])")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return new RegExp>>>=x.unshift() }; X(Math.max(continue.name()))")
+  eval("function X(x) { return new RegExp>>>=x.unshift() }; X(Math.max(continue.name()))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(IsSmi(null.size))")
+  eval("Instantiate(IsSmi(null.size))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = native?0.2:1+GetFunctionFor(void)")
+  eval("x = native?0.2:1+GetFunctionFor(void)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (IsPrimitive(-1)>>>=break.valueOf() in String(0 > 0.2)) { Math.max(true.length()) }")
+  eval("for (IsPrimitive(-1)>>>=break.valueOf() in String(0 > 0.2)) { Math.max(true.length()) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (escape(unescape(NaN))) { case (Math.pow(eval(undef))): true.charAt(null)&new RegExp.pop(); break; }")
+  eval("switch (escape(unescape(NaN))) { case (Math.pow(eval(undef))): true.charAt(null)&new RegExp.pop(); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete Join(new RegExp, 1, false, new Object(), this).toLocaleString()")
+  eval("delete Join(new RegExp, 1, false, new Object(), this).toLocaleString()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label return x.filter(x.join())")
+  eval("label return x.filter(x.join())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new new RegExp.pop().shift()")
+  eval("new new RegExp.pop().shift()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new (!debugger.size)")
+  eval("x = new (!debugger.size)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label Math.max(debugger.__lookupGetter__(NaN))")
+  eval("label Math.max(debugger.__lookupGetter__(NaN))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(eval(debugger[debugger]))")
+  eval("Instantiate(eval(debugger[debugger]))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new 0.2.filter(true)&throw new true(debugger)")
+  eval("new 0.2.filter(true)&throw new true(debugger)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(continue.exec(debugger) > Math.pow(0.2))")
+  eval("new Date(continue.exec(debugger) > Math.pow(0.2))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("void.prototype.value.name().prototype.Number(undef&NaN) = false.__lookupGetter__(-1).name()")
+  eval("void.prototype.value.name().prototype.Number(undef&NaN) = false.__lookupGetter__(-1).name()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(null.__defineGetter__(native,function(){continue}).valueOf())")
+  eval("Instantiate(null.__defineGetter__(native,function(){continue}).valueOf())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ {new Object()[continue],native.length()} : undef.name().superConstructor }) { Math.pow(break).indexOf(0.toJSONProtocol) }")
+  eval("with ({ {new Object()[continue],native.length()} : undef.name().superConstructor }) { Math.pow(break).indexOf(0.toJSONProtocol) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (Iterator(native.call(new RegExp))) { case (String(new RegExp).isNull): goto new RegExp.pop(); break; }")
+  eval("switch (Iterator(native.call(new RegExp))) { case (String(new RegExp).isNull): goto new RegExp.pop(); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new x.constructor instanceof undef.indexOf(-1)")
+  eval("const x = new x.constructor instanceof undef.indexOf(-1)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(this.~null, continue.pop()&0&'a')")
+  eval("SetValueOf(this.~null, continue.pop()&0&'a')")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (GetFunctionFor(~0)) { case ('a'.'a'<<undef.__defineGetter__(false,function(){true})): (!1).lastIndex; break; }")
+  eval("switch (GetFunctionFor(~0)) { case ('a'.'a'<<undef.__defineGetter__(false,function(){true})): (!1).lastIndex; break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return debugger.unshift().0.toString() }; X(Number(break).0.2>>>=false)")
+  eval("function X(x) { return debugger.unshift().0.toString() }; X(Number(break).0.2>>>=false)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(Iterator(x)/undef.pop())")
+  eval("new Date(Iterator(x)/undef.pop())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(undef.join().toLocaleString(), null.add(false).valueOf())")
+  eval("SetValueOf(undef.join().toLocaleString(), null.add(false).valueOf())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("IsSmi(x).toString().prototype.0>>continue.indexOf(NaN.__lookupGetter__(new Object())) = ~-1&typeof(0)")
+  eval("IsSmi(x).toString().prototype.0>>continue.indexOf(NaN.__lookupGetter__(new Object())) = ~-1&typeof(0)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (continue.__lookupGetter__(new RegExp).toObject(), false-0.toString(), return native.sort()) { new RegExp.name().className() }")
+  eval("for (continue.__lookupGetter__(new RegExp).toObject(), false-0.toString(), return native.sort()) { new RegExp.name().className() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
@@ -1557,477 +1557,476 @@
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (escape(new RegExp).toString()) { case (goto eval(1)): this.filter(new Object()).call(new RegExp.slice(null, this)); break; }")
+  eval("switch (escape(new RegExp).toString()) { case (goto eval(1)): this.filter(new Object()).call(new RegExp.slice(null, this)); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = debugger-false.toText")
+  eval("x = debugger-false.toText")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = Number(null>>new RegExp)")
+  eval("const x = Number(null>>new RegExp)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete this&native.indexOf('a'.splice())")
+  eval("delete this&native.indexOf('a'.splice())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(~Math.max(break), 0.2.valueOf().length)")
+  eval("SetValueOf(~Math.max(break), 0.2.valueOf().length)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(Number(native.charCodeAt(x)))")
+  eval("Instantiate(Number(native.charCodeAt(x)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new goto continue.add(0)")
+  eval("const x = new goto continue.add(0)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete typeof(debugger).name()")
+  eval("delete typeof(debugger).name()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("'a'<<false.toText.prototype.throw new true(1).lastIndex = 'a'.name().length")
+  eval("'a'<<false.toText.prototype.throw new true(1).lastIndex = 'a'.name().length")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native 'a'.indexOf(debugger).charAt(NaN.add(new Object()))")
+  eval("native 'a'.indexOf(debugger).charAt(NaN.add(new Object()))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(break>>false.toString(), (false.indexOf(this)))")
+  eval("SetValueOf(break>>false.toString(), (false.indexOf(this)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete goto NaN==(!debugger)")
+  eval("delete goto NaN==(!debugger)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(0.2.join().superConstructor)")
+  eval("new Date(0.2.join().superConstructor)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new this.void.toLocaleString()")
+  eval("const x = new this.void.toLocaleString()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("SetValueOf(x.exec(debugger)[GetFunctionFor(0)], native.toObject().exec(new RegExp.sort()))")
+  eval("SetValueOf(x.exec(debugger)[GetFunctionFor(0)], native.toObject().exec(new RegExp.sort()))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(0.2.valueOf().toLocaleString())")
+  eval("Instantiate(0.2.valueOf().toLocaleString())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(-1.toJSONProtocol.prototype.name)")
+  eval("new Function(-1.toJSONProtocol.prototype.name)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(Array(-1.shift()))")
+  eval("new Date(Array(-1.shift()))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export break.concat(undef).unshift()")
+  eval("export break.concat(undef).unshift()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native parseFloat(-1)?NaN.toText:debugger.toString()")
+  eval("native parseFloat(-1)?NaN.toText:debugger.toString()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (void-continue/continue.prototype.undef in String(break.toText)) { parseInt(false).isNull }")
+  eval("for (void-continue/continue.prototype.undef in String(break.toText)) { parseInt(false).isNull }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(true.isNull.toObject())")
+  eval("Instantiate(true.isNull.toObject())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ typeof(debugger).toObject() : x.constructor>>>=null.__defineGetter__(native,function(){debugger}) }) { unescape(undef.lastIndexOf(false)) }")
+  eval("with ({ typeof(debugger).toObject() : x.constructor>>>=null.__defineGetter__(native,function(){debugger}) }) { unescape(undef.lastIndexOf(false)) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export unescape(continue)<<native[0]")
+  eval("export unescape(continue)<<native[0]")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (String(0).unescape(debugger)) { {break.pop(),0.2.constructor} }")
+  eval("if (String(0).unescape(debugger)) { {break.pop(),0.2.constructor} }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("String({true}).prototype.break.length.call(false > 0.2) = GetFunctionFor(0.prototype.new RegExp)")
+  eval("String({true}).prototype.break.length.call(false > 0.2) = GetFunctionFor(0.prototype.new RegExp)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ false.push(0.2).indexOf(Math.max(debugger)) : x&x.prototype.name }) { goto 1.lastIndex }")
+  eval("with ({ false.push(0.2).indexOf(Math.max(debugger)) : x&x.prototype.name }) { goto 1.lastIndex }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(0.2.lastIndex&0.2?break:NaN)")
+  eval("new Function(0.2.lastIndex&0.2?break:NaN)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = -1.prototype.value.toText")
+  eval("const x = -1.prototype.value.toText")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import native.toLocaleString()-1.prototype.0")
+  eval("import native.toLocaleString()-1.prototype.0")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export debugger[-1].indexOf(Join(new Object(), 0, x, new Object(), 0.2))")
+  eval("export debugger[-1].indexOf(Join(new Object(), 0, x, new Object(), 0.2))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return (!true).lastIndexOf(true.splice()) }; X(NaN.toString().prototype.value)")
+  eval("function X(x) { return (!true).lastIndexOf(true.splice()) }; X(NaN.toString().prototype.value)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return continue.slice(-1, 1).prototype.true.name() }; X('a'.push(void).prototype.value)")
+  eval("function X(x) { return continue.slice(-1, 1).prototype.true.name() }; X('a'.push(void).prototype.value)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (goto new RegExp.length(), x.sort().className(), Math.max(new RegExp.toJSONProtocol)) { (IsSmi(-1)) }")
+  eval("for (goto new RegExp.length(), x.sort().className(), Math.max(new RegExp.toJSONProtocol)) { (IsSmi(-1)) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = 0.splice()&&-1.sort()")
+  eval("const x = 0.splice()&&-1.sort()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let (Math.max(-1>>1)) { break.toLocaleString().toJSONProtocol }")
+  eval("let (Math.max(-1>>1)) { break.toLocaleString().toJSONProtocol }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new {void.prototype.break,new RegExp.toString()}")
+  eval("new {void.prototype.break,new RegExp.toString()}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new IsSmi(debugger).name()")
+  eval("new IsSmi(debugger).name()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new 'a'.concat(undef).sort()")
+  eval("new 'a'.concat(undef).sort()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new {debugger.toObject(),'a' > false}")
+  eval("x = new {debugger.toObject(),'a' > false}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (goto 1.concat(Join(x, undef, native, x, new Object()))) { new RegExp.prototype.name==new RegExp.superConstructor }")
+  eval("if (goto 1.concat(Join(x, undef, native, x, new Object()))) { new RegExp.prototype.name==new RegExp.superConstructor }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return new Object().__defineGetter__(0.2,function(){0.2}).length() }; X(void.isNull<<parseFloat(NaN))")
+  eval("function X(x) { return new Object().__defineGetter__(0.2,function(){0.2}).length() }; X(void.isNull<<parseFloat(NaN))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete continue.toJSONProtocol.toLocaleString()")
+  eval("delete continue.toJSONProtocol.toLocaleString()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (continue.constructor.toObject() in true&&undef.toJSONProtocol) { String(0+break) }")
+  eval("for (continue.constructor.toObject() in true&&undef.toJSONProtocol) { String(0+break) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import true.call(continue)>>break.toString()")
+  eval("import true.call(continue)>>break.toString()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label escape(this) > Math.pow(new RegExp)")
+  eval("label escape(this) > Math.pow(new RegExp)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new {void}/IsSmi(new Object())")
+  eval("new {void}/IsSmi(new Object())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (native==null?debugger.prototype.name:null.toLocaleString()) { case (NaN.push(this).join()): (break instanceof continue); break; }")
+  eval("switch (native==null?debugger.prototype.name:null.toLocaleString()) { case (NaN.push(this).join()): (break instanceof continue); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new Math.pow(x.push(0))")
+  eval("x = new Math.pow(x.push(0))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new (Array(NaN))")
+  eval("new (Array(NaN))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label IsSmi(new RegExp).toLocaleString()")
+  eval("label IsSmi(new RegExp).toLocaleString()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label NaN.push(1).shift()")
+  eval("label NaN.push(1).shift()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("{escape(undef),debugger.filter(0.2)}.prototype.-1 > new RegExp[0.2.valueOf()] = new RegExp.prototype.value.splice()")
+  eval("{escape(undef),debugger.filter(0.2)}.prototype.-1 > new RegExp[0.2.valueOf()] = new RegExp.prototype.value.splice()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new Join(0.2, x, continue, debugger, new Object()).size")
+  eval("x = new Join(0.2, x, continue, debugger, new Object()).size")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("with ({ Number(null).name() : Math.pow(true).__defineGetter__(debugger.toString(),function(){false+0.2}) }) { this.{x,break} }")
+  eval("with ({ Number(null).name() : Math.pow(true).__defineGetter__(debugger.toString(),function(){false+0.2}) }) { this.{x,break} }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Math.pow(goto debugger)")
+  eval("new Math.pow(goto debugger)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = IsPrimitive(void.pop())")
+  eval("x = IsPrimitive(void.pop())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new Object().toString().toJSONProtocol")
+  eval("x = new Object().toString().toJSONProtocol")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(this.String(0.2))")
+  eval("Instantiate(this.String(0.2))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let ({-1.call(new RegExp)}) { break.length().splice() }")
+  eval("let ({-1.call(new RegExp)}) { break.length().splice() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import null.size.__defineGetter__(void.filter(x),function(){null.pop()})")
+  eval("import null.size.__defineGetter__(void.filter(x),function(){null.pop()})")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new IsPrimitive(null.superConstructor)")
+  eval("const x = new IsPrimitive(null.superConstructor)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new eval(-1.prototype.continue)")
+  eval("new eval(-1.prototype.continue)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (typeof(Iterator('a'))) { case (0.constructor>>~1): void.__defineGetter__(void,function(){1})/GetFunctionFor(0); break; }")
+  eval("switch (typeof(Iterator('a'))) { case (0.constructor>>~1): void.__defineGetter__(void,function(){1})/GetFunctionFor(0); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for (false instanceof x.add(true.charAt(new RegExp)) in Join(undef.lastIndexOf(break), 0.2.add(new Object()), Iterator(1), {'a',x}, Array(new Object()))) { function () { null }/1&&-1 }")
+  eval("for (false instanceof x.add(true.charAt(new RegExp)) in Join(undef.lastIndexOf(break), 0.2.add(new Object()), Iterator(1), {'a',x}, Array(new Object()))) { function () { null }/1&&-1 }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new escape('a'.concat(undef))")
+  eval("new escape('a'.concat(undef))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(Math.pow(NaN).toText)")
+  eval("new Function(Math.pow(NaN).toText)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new throw new 0(NaN).className()")
+  eval("x = new throw new 0(NaN).className()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete String(GetFunctionFor(new Object()))")
+  eval("delete String(GetFunctionFor(new Object()))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = Iterator(new Object()).charAt((0.2))")
+  eval("x = Iterator(new Object()).charAt((0.2))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Number(undef.charAt(1)).prototype.undef.lastIndexOf(true).slice(1.className(), undef.filter(-1)) = null<<null.push(parseInt('a'))")
+  eval("Number(undef.charAt(1)).prototype.undef.lastIndexOf(true).slice(1.className(), undef.filter(-1)) = null<<null.push(parseInt('a'))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = {Math.max(1),IsSmi(new Object())}")
+  eval("x = {Math.max(1),IsSmi(new Object())}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch (new Object().exec(0).isNull) { case (escape(IsSmi(false))): false.toObject()-null.size; break; }")
+  eval("switch (new Object().exec(0).isNull) { case (escape(IsSmi(false))): false.toObject()-null.size; break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new 'a'.__defineSetter__(debugger,function(){false}).name()")
+  eval("new 'a'.__defineSetter__(debugger,function(){false}).name()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = debugger?-1:0+true.prototype.1")
+  eval("x = debugger?-1:0+true.prototype.1")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new {false instanceof continue,native.size}")
+  eval("new {false instanceof continue,native.size}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("GetFunctionFor(continue.__lookupGetter__(0.2)).prototype.Math.max(1.splice()) = true.__defineGetter__(undef,function(){NaN}).filter(String(new RegExp))")
+  eval("GetFunctionFor(continue.__lookupGetter__(0.2)).prototype.Math.max(1.splice()) = true.__defineGetter__(undef,function(){NaN}).filter(String(new RegExp))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("null.size-1.toLocaleString().prototype.(this).shift() = GetFunctionFor(native.charAt(break))")
+  eval("null.size-1.toLocaleString().prototype.(this).shift() = GetFunctionFor(native.charAt(break))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate((!null.indexOf(-1)))")
+  eval("Instantiate((!null.indexOf(-1)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = {break.sort()}")
+  eval("x = {break.sort()}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new throw new debugger.splice()(this.__lookupGetter__(undef))")
+  eval("new throw new debugger.splice()(this.__lookupGetter__(undef))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("unescape(x[native]).prototype.0.splice().-1.prototype.true = x.prototype.value.className()")
+  eval("unescape(x[native]).prototype.0.splice().-1.prototype.true = x.prototype.value.className()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export x+true.length")
+  eval("export x+true.length")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export debugger.indexOf(-1).indexOf(true.constructor)")
+  eval("export debugger.indexOf(-1).indexOf(true.constructor)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("for ({break}.exec(new Object().continue) in eval(0.2.charAt(new Object()))) { throw new null.length(null?break:-1) }")
+  eval("for ({break}.exec(new Object().continue) in eval(0.2.charAt(new Object()))) { throw new null.length(null?break:-1) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = NaN.toLocaleString().toObject()")
+  eval("const x = NaN.toLocaleString().toObject()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return Math.pow(break+false) }; X(Join(true.add(new Object()), null[-1], new RegExp[true], NaN&&debugger, x.charAt(undef)))")
+  eval("function X(x) { return Math.pow(break+false) }; X(Join(true.add(new Object()), null[-1], new RegExp[true], NaN&&debugger, x.charAt(undef)))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("switch ((break).add(true.sort())) { case (undef.charAt(native).__defineGetter__(IsPrimitive(1),function(){NaN<<new RegExp})): -1.__defineSetter__(null,function(){-1}) > this.charCodeAt(this); break; }")
+  eval("switch ((break).add(true.sort())) { case (undef.charAt(native).__defineGetter__(IsPrimitive(1),function(){NaN<<new RegExp})): -1.__defineSetter__(null,function(){-1}) > this.charCodeAt(this); break; }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import return 0.2.length")
+  eval("import return 0.2.length")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("continue.join().toText.prototype.Number(debugger).slice(new RegExp.-1, (NaN)) = function () { (!null) }")
+  eval("continue.join().toText.prototype.Number(debugger).slice(new RegExp.-1, (NaN)) = function () { (!null) }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export Number(break.__lookupGetter__(false))")
+  eval("export Number(break.__lookupGetter__(false))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Date(return null/x)")
+  eval("new Date(return null/x)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export Number(undef).shift()")
+  eval("export Number(undef).shift()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = 1[native]/this&true")
+  eval("const x = 1[native]/this&true")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete typeof(debugger.unshift())")
+  eval("delete typeof(debugger.unshift())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import x.charAt(false)&-1>>x")
+  eval("import x.charAt(false)&-1>>x")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("if (null.toText.superConstructor) { typeof(-1).toString() }")
+  eval("if (null.toText.superConstructor) { typeof(-1).toString() }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let (parseFloat(continue.superConstructor)) { 0.2.toText.prototype.value }")
+  eval("let (parseFloat(continue.superConstructor)) { 0.2.toText.prototype.value }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label parseInt(IsSmi(null))")
+  eval("label parseInt(IsSmi(null))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete new Object().valueOf().indexOf(true-x)")
+  eval("delete new Object().valueOf().indexOf(true-x)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new unescape(1.__defineGetter__(new Object(),function(){x}))")
+  eval("x = new unescape(1.__defineGetter__(new Object(),function(){x}))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("let (undef.size.splice()) { 1.constructor.charCodeAt(0+'a') }")
+  eval("let (undef.size.splice()) { 1.constructor.charCodeAt(0+'a') }")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("this.new RegExp.pop().prototype.eval(debugger).toJSONProtocol = unescape(continue).valueOf()")
+  eval("this.new RegExp.pop().prototype.eval(debugger).toJSONProtocol = unescape(continue).valueOf()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("const x = new this.new RegExp.indexOf(unescape(new Object()))")
+  eval("const x = new this.new RegExp.indexOf(unescape(new Object()))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = new break instanceof false instanceof native.length()")
+  eval("x = new break instanceof false instanceof native.length()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate(parseFloat(x).valueOf())")
+  eval("Instantiate(parseFloat(x).valueOf())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label {escape(true),Math.max(null)}")
+  eval("label {escape(true),Math.max(null)}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("'a'>>>=void.prototype.value.prototype.break.prototype.break.indexOf(0.className()) = (!this&native)")
+  eval("'a'>>>=void.prototype.value.prototype.break.prototype.break.indexOf(0.className()) = (!this&native)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("import Number(NaN).push(IsSmi(break))")
+  eval("import Number(NaN).push(IsSmi(break))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("export true.exec(void).toObject()")
+  eval("export true.exec(void).toObject()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function({'a',true}/eval(new Object()))")
+  eval("new Function({'a',true}/eval(new Object()))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("label null.concat(null).toObject()")
+  eval("label null.concat(null).toObject()")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("native {0.2.length,new RegExp.lastIndexOf(-1)}")
+  eval("native {0.2.length,new RegExp.lastIndexOf(-1)}")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("function X(x) { return Math.max({0.2}) }; X(true.charCodeAt(null).add(new RegExp.name()))")
+  eval("function X(x) { return Math.max({0.2}) }; X(true.charCodeAt(null).add(new RegExp.name()))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("delete -1.lastIndex.length")
+  eval("delete -1.lastIndex.length")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("new Function(0.2[1].call(true > break))")
+  eval("new Function(0.2[1].call(true > break))")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("Instantiate('a'.toLocaleString().splice())")
+  eval("Instantiate('a'.toLocaleString().splice())")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
 
 try {
-	eval("x = typeof(void&&void)")
+  eval("x = typeof(void&&void)")
 } catch (e) { if (e.message.length > 0) { print (e.message); } };
-
diff --git a/test/mjsunit/regress/regress-1201933.js b/test/mjsunit/regress/regress-1201933.js
index ca66cf0..d4827e4 100644
--- a/test/mjsunit/regress/regress-1201933.js
+++ b/test/mjsunit/regress/regress-1201933.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1203459.js b/test/mjsunit/regress/regress-1203459.js
index 1714c60..da1e0ed 100644
--- a/test/mjsunit/regress/regress-1203459.js
+++ b/test/mjsunit/regress/regress-1203459.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1207276.js b/test/mjsunit/regress/regress-1207276.js
index 5a49b59..ce7efe9 100644
--- a/test/mjsunit/regress/regress-1207276.js
+++ b/test/mjsunit/regress/regress-1207276.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1213516.js b/test/mjsunit/regress/regress-1213516.js
index 39a0567..6703f32 100644
--- a/test/mjsunit/regress/regress-1213516.js
+++ b/test/mjsunit/regress/regress-1213516.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1213575.js b/test/mjsunit/regress/regress-1213575.js
index 3a84aa8..0c3dcc2 100644
--- a/test/mjsunit/regress/regress-1213575.js
+++ b/test/mjsunit/regress/regress-1213575.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1215653.js b/test/mjsunit/regress/regress-1215653.js
index c6dc7a1..881e22c 100644
--- a/test/mjsunit/regress/regress-1215653.js
+++ b/test/mjsunit/regress/regress-1215653.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1254366.js b/test/mjsunit/regress/regress-1254366.js
index c3abf14..2f9e011 100644
--- a/test/mjsunit/regress/regress-1254366.js
+++ b/test/mjsunit/regress/regress-1254366.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1327557.js b/test/mjsunit/regress/regress-1327557.js
index 4626765..bdf4277 100644
--- a/test/mjsunit/regress/regress-1327557.js
+++ b/test/mjsunit/regress/regress-1327557.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-1341167.js b/test/mjsunit/regress/regress-1341167.js
index 5367d23..194a7b8 100644
--- a/test/mjsunit/regress/regress-1341167.js
+++ b/test/mjsunit/regress/regress-1341167.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/bugs/bug-1346700.js b/test/mjsunit/regress/regress-1346700.js
similarity index 95%
rename from test/mjsunit/bugs/bug-1346700.js
rename to test/mjsunit/regress/regress-1346700.js
index 249ae41..fe2d6fa 100644
--- a/test/mjsunit/bugs/bug-1346700.js
+++ b/test/mjsunit/regress/regress-1346700.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2007-2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-20070207.js b/test/mjsunit/regress/regress-20070207.js
index 7365f32..e90b2ec 100644
--- a/test/mjsunit/regress/regress-20070207.js
+++ b/test/mjsunit/regress/regress-20070207.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/bugs/bug-1346700.js b/test/mjsunit/regress/regress-35.js
similarity index 87%
copy from test/mjsunit/bugs/bug-1346700.js
copy to test/mjsunit/regress/regress-35.js
index 249ae41..2fcdbe7 100644
--- a/test/mjsunit/bugs/bug-1346700.js
+++ b/test/mjsunit/regress/regress-35.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -25,5 +25,9 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-var o = {"\u59cb\u53d1\u7ad9": 1};
-assertEquals(1, o.\u59cb\u53d1\u7ad9);
+var result;
+eval("result = 42; while(true)break");
+assertEquals(42, result);
+
+eval("result = 87; while(false)continue");
+assertEquals(87, result);
diff --git a/test/mjsunit/bugs/bug-1346700.js b/test/mjsunit/regress/regress-57.js
similarity index 91%
copy from test/mjsunit/bugs/bug-1346700.js
copy to test/mjsunit/regress/regress-57.js
index 249ae41..1d410b9 100644
--- a/test/mjsunit/bugs/bug-1346700.js
+++ b/test/mjsunit/regress/regress-57.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
@@ -25,5 +25,8 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-var o = {"\u59cb\u53d1\u7ad9": 1};
-assertEquals(1, o.\u59cb\u53d1\u7ad9);
+try {
+  delete (void 0).x;
+} catch (e) {
+  print(e.toString());
+}
diff --git a/test/mjsunit/regress/regress-588599.js b/test/mjsunit/regress/regress-588599.js
index ff6590a..a1c16e2 100644
--- a/test/mjsunit/regress/regress-588599.js
+++ b/test/mjsunit/regress/regress-588599.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-662254.js b/test/mjsunit/regress/regress-662254.js
index bc4ef77..daf5e17 100644
--- a/test/mjsunit/regress/regress-662254.js
+++ b/test/mjsunit/regress/regress-662254.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-666721.js b/test/mjsunit/regress/regress-666721.js
index 3ee60dc..e2c632f 100644
--- a/test/mjsunit/regress/regress-666721.js
+++ b/test/mjsunit/regress/regress-666721.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-667061.js b/test/mjsunit/regress/regress-667061.js
index 7e97748..4d29a1a 100644
--- a/test/mjsunit/regress/regress-667061.js
+++ b/test/mjsunit/regress/regress-667061.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-670147.js b/test/mjsunit/regress/regress-670147.js
index 6808227..b5b00d0 100644
--- a/test/mjsunit/regress/regress-670147.js
+++ b/test/mjsunit/regress/regress-670147.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-674753.js b/test/mjsunit/regress/regress-674753.js
index 3331f23..361b457 100644
--- a/test/mjsunit/regress/regress-674753.js
+++ b/test/mjsunit/regress/regress-674753.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-676025.js b/test/mjsunit/regress/regress-676025.js
index 9e8a8e2..15157f2 100644
--- a/test/mjsunit/regress/regress-676025.js
+++ b/test/mjsunit/regress/regress-676025.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-678525.js b/test/mjsunit/regress/regress-678525.js
index b00d54c..5ff9c3d 100644
--- a/test/mjsunit/regress/regress-678525.js
+++ b/test/mjsunit/regress/regress-678525.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-682649.js b/test/mjsunit/regress/regress-682649.js
index 5f8b2e7..f23aed5 100644
--- a/test/mjsunit/regress/regress-682649.js
+++ b/test/mjsunit/regress/regress-682649.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-734862.js b/test/mjsunit/regress/regress-734862.js
index 7e0f02d..6239047 100644
--- a/test/mjsunit/regress/regress-734862.js
+++ b/test/mjsunit/regress/regress-734862.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-737588.js b/test/mjsunit/regress/regress-737588.js
index 052b8f1..0f71dfc 100644
--- a/test/mjsunit/regress/regress-737588.js
+++ b/test/mjsunit/regress/regress-737588.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-780423.js b/test/mjsunit/regress/regress-780423.js
index 6cdb618..862db32 100644
--- a/test/mjsunit/regress/regress-780423.js
+++ b/test/mjsunit/regress/regress-780423.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-799761.js b/test/mjsunit/regress/regress-799761.js
index 9d96615..d3be1bd 100644
--- a/test/mjsunit/regress/regress-799761.js
+++ b/test/mjsunit/regress/regress-799761.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-806473.js b/test/mjsunit/regress/regress-806473.js
index f78d9ad..6d6485d 100644
--- a/test/mjsunit/regress/regress-806473.js
+++ b/test/mjsunit/regress/regress-806473.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-842017.js b/test/mjsunit/regress/regress-842017.js
index 1967a99..3a367bb 100644
--- a/test/mjsunit/regress/regress-842017.js
+++ b/test/mjsunit/regress/regress-842017.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-874178.js b/test/mjsunit/regress/regress-874178.js
index 69ee8e9..0ed5434 100644
--- a/test/mjsunit/regress/regress-874178.js
+++ b/test/mjsunit/regress/regress-874178.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-875031.js b/test/mjsunit/regress/regress-875031.js
index 2ff8fd6..f18b084 100644
--- a/test/mjsunit/regress/regress-875031.js
+++ b/test/mjsunit/regress/regress-875031.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-877615.js b/test/mjsunit/regress/regress-877615.js
index 530dcbb..d35aba6 100644
--- a/test/mjsunit/regress/regress-877615.js
+++ b/test/mjsunit/regress/regress-877615.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-892742.js b/test/mjsunit/regress/regress-892742.js
index 67fb153..a60395e 100644
--- a/test/mjsunit/regress/regress-892742.js
+++ b/test/mjsunit/regress/regress-892742.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-900055.js b/test/mjsunit/regress/regress-900055.js
index bdeafb0..9a02f22 100644
--- a/test/mjsunit/regress/regress-900055.js
+++ b/test/mjsunit/regress/regress-900055.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-900966.js b/test/mjsunit/regress/regress-900966.js
index ee6a8cc..b95d10e 100644
--- a/test/mjsunit/regress/regress-900966.js
+++ b/test/mjsunit/regress/regress-900966.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-925537.js b/test/mjsunit/regress/regress-925537.js
index 65438b7..11582ea 100644
--- a/test/mjsunit/regress/regress-925537.js
+++ b/test/mjsunit/regress/regress-925537.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-937896.js b/test/mjsunit/regress/regress-937896.js
index fb270ae..e8e5ef2 100644
--- a/test/mjsunit/regress/regress-937896.js
+++ b/test/mjsunit/regress/regress-937896.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-990205.js b/test/mjsunit/regress/regress-990205.js
index 90d7381..1ab5bf8 100644
--- a/test/mjsunit/regress/regress-990205.js
+++ b/test/mjsunit/regress/regress-990205.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-992733.js b/test/mjsunit/regress/regress-992733.js
index bf60b97..d0f7511 100644
--- a/test/mjsunit/regress/regress-992733.js
+++ b/test/mjsunit/regress/regress-992733.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-996542.js b/test/mjsunit/regress/regress-996542.js
index 3a4b96f..8fc704e 100644
--- a/test/mjsunit/regress/regress-996542.js
+++ b/test/mjsunit/regress/regress-996542.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/regress/regress-998565.js b/test/mjsunit/regress/regress-998565.js
index 5c06f77..ff66154 100644
--- a/test/mjsunit/regress/regress-998565.js
+++ b/test/mjsunit/regress/regress-998565.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/scanner.js b/test/mjsunit/scanner.js
index 4f75f80..516a4e8 100644
--- a/test/mjsunit/scanner.js
+++ b/test/mjsunit/scanner.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/smi-negative-zero.js b/test/mjsunit/smi-negative-zero.js
index c65d4f1..99ddc97 100644
--- a/test/mjsunit/smi-negative-zero.js
+++ b/test/mjsunit/smi-negative-zero.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/smi-ops.js b/test/mjsunit/smi-ops.js
index c30b097..bdd7509 100644
--- a/test/mjsunit/smi-ops.js
+++ b/test/mjsunit/smi-ops.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/sparse-array-reverse.js b/test/mjsunit/sparse-array-reverse.js
index a2ba3e4..9b9f323 100644
--- a/test/mjsunit/sparse-array-reverse.js
+++ b/test/mjsunit/sparse-array-reverse.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/sparse-array.js b/test/mjsunit/sparse-array.js
index 19fee37..0952f2c 100644
--- a/test/mjsunit/sparse-array.js
+++ b/test/mjsunit/sparse-array.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/str-to-num.js b/test/mjsunit/str-to-num.js
index 907b8a4..12a3716 100644
--- a/test/mjsunit/str-to-num.js
+++ b/test/mjsunit/str-to-num.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/stress-array-push.js b/test/mjsunit/stress-array-push.js
index ce7ed57..1db2e2a 100644
--- a/test/mjsunit/stress-array-push.js
+++ b/test/mjsunit/stress-array-push.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/strict-equals.js b/test/mjsunit/strict-equals.js
index 82bff21..d080ce8 100644
--- a/test/mjsunit/strict-equals.js
+++ b/test/mjsunit/strict-equals.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/string-case.js b/test/mjsunit/string-case.js
index dd31811..13dcd3e 100644
--- a/test/mjsunit/string-case.js
+++ b/test/mjsunit/string-case.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/string-charat.js b/test/mjsunit/string-charat.js
index 665c874..8ec8f1e 100644
--- a/test/mjsunit/string-charat.js
+++ b/test/mjsunit/string-charat.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/string-charcodeat.js b/test/mjsunit/string-charcodeat.js
index 3327c94..f66dd3e 100644
--- a/test/mjsunit/string-charcodeat.js
+++ b/test/mjsunit/string-charcodeat.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/string-flatten.js b/test/mjsunit/string-flatten.js
index 9086391..91877b2 100644
--- a/test/mjsunit/string-flatten.js
+++ b/test/mjsunit/string-flatten.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/string-index.js b/test/mjsunit/string-index.js
index 36ea74d..2256286 100644
--- a/test/mjsunit/string-index.js
+++ b/test/mjsunit/string-index.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/string-indexof.js b/test/mjsunit/string-indexof.js
index 1ce9384..5b37a48 100644
--- a/test/mjsunit/string-indexof.js
+++ b/test/mjsunit/string-indexof.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/string-lastindexof.js b/test/mjsunit/string-lastindexof.js
index dba0c12..bf46666 100644
--- a/test/mjsunit/string-lastindexof.js
+++ b/test/mjsunit/string-lastindexof.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/string-localecompare.js b/test/mjsunit/string-localecompare.js
index aa33f99..90a1813 100644
--- a/test/mjsunit/string-localecompare.js
+++ b/test/mjsunit/string-localecompare.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/string-search.js b/test/mjsunit/string-search.js
index 5d2cdfe..36891c2 100644
--- a/test/mjsunit/string-search.js
+++ b/test/mjsunit/string-search.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/string-split.js b/test/mjsunit/string-split.js
index bf9ad94..59d3ad3 100644
--- a/test/mjsunit/string-split.js
+++ b/test/mjsunit/string-split.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/substr.js b/test/mjsunit/substr.js
index 63058d3..8c276f9 100644
--- a/test/mjsunit/substr.js
+++ b/test/mjsunit/substr.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/testcfg.py b/test/mjsunit/testcfg.py
index 67ee85d..f65365d 100644
--- a/test/mjsunit/testcfg.py
+++ b/test/mjsunit/testcfg.py
@@ -1,4 +1,4 @@
-# Copyright 2008 Google Inc.  All rights reserved.
+# Copyright 2008 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
 # met:
@@ -58,6 +58,9 @@
     result += [framework, self.file]
     return result
 
+  def GetSource(self):
+    return open(self.file).read()
+
 
 class MjsunitTestConfiguration(test.TestConfiguration):
 
diff --git a/test/mjsunit/this-in-callbacks.js b/test/mjsunit/this-in-callbacks.js
index 1b42ecc..d50be6c 100644
--- a/test/mjsunit/this-in-callbacks.js
+++ b/test/mjsunit/this-in-callbacks.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/this.js b/test/mjsunit/this.js
index 9026063..0019eb2 100644
--- a/test/mjsunit/this.js
+++ b/test/mjsunit/this.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/throw-exception-for-null-access.js b/test/mjsunit/throw-exception-for-null-access.js
index 016a10e..018cfef 100644
--- a/test/mjsunit/throw-exception-for-null-access.js
+++ b/test/mjsunit/throw-exception-for-null-access.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/to-precision.js b/test/mjsunit/to-precision.js
index e42fb8f..04c7d76 100644
--- a/test/mjsunit/to-precision.js
+++ b/test/mjsunit/to-precision.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/tobool.js b/test/mjsunit/tobool.js
index 25d2c93..65bffb6 100644
--- a/test/mjsunit/tobool.js
+++ b/test/mjsunit/tobool.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/toint32.js b/test/mjsunit/toint32.js
index e73e33c..e1a64a6 100644
--- a/test/mjsunit/toint32.js
+++ b/test/mjsunit/toint32.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/touint32.js b/test/mjsunit/touint32.js
index b6cf6ef..f06bddf 100644
--- a/test/mjsunit/touint32.js
+++ b/test/mjsunit/touint32.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/try-finally-nested.js b/test/mjsunit/try-finally-nested.js
index f6380ee..c05f96a 100644
--- a/test/mjsunit/try-finally-nested.js
+++ b/test/mjsunit/try-finally-nested.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/try.js b/test/mjsunit/try.js
index 555c847..a3f4433 100644
--- a/test/mjsunit/try.js
+++ b/test/mjsunit/try.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/try_catch_scopes.js b/test/mjsunit/try_catch_scopes.js
index 3005cff..c5bada2 100644
--- a/test/mjsunit/try_catch_scopes.js
+++ b/test/mjsunit/try_catch_scopes.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/unicode-string-to-number.js b/test/mjsunit/unicode-string-to-number.js
index 5d08b7b..13a7acf 100644
--- a/test/mjsunit/unicode-string-to-number.js
+++ b/test/mjsunit/unicode-string-to-number.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/unicode-test.js b/test/mjsunit/unicode-test.js
index 512b594..581b3b7 100644
--- a/test/mjsunit/unicode-test.js
+++ b/test/mjsunit/unicode-test.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/unusual-constructor.js b/test/mjsunit/unusual-constructor.js
index 58fe644..4e1ec2e 100644
--- a/test/mjsunit/unusual-constructor.js
+++ b/test/mjsunit/unusual-constructor.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/uri.js b/test/mjsunit/uri.js
index 7752300..178ff1f 100644
--- a/test/mjsunit/uri.js
+++ b/test/mjsunit/uri.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/value-callic-prototype-change.js b/test/mjsunit/value-callic-prototype-change.js
index 44103e3..52f0629 100644
--- a/test/mjsunit/value-callic-prototype-change.js
+++ b/test/mjsunit/value-callic-prototype-change.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/var.js b/test/mjsunit/var.js
index f81c05e..5999d70 100644
--- a/test/mjsunit/var.js
+++ b/test/mjsunit/var.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/with-leave.js b/test/mjsunit/with-leave.js
index 1478e7d..ded62ca 100644
--- a/test/mjsunit/with-leave.js
+++ b/test/mjsunit/with-leave.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/with-parameter-access.js b/test/mjsunit/with-parameter-access.js
index 8e055ee..747da22 100644
--- a/test/mjsunit/with-parameter-access.js
+++ b/test/mjsunit/with-parameter-access.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mjsunit/with-value.js b/test/mjsunit/with-value.js
index d200300..a4da1fa 100644
--- a/test/mjsunit/with-value.js
+++ b/test/mjsunit/with-value.js
@@ -1,4 +1,4 @@
-// Copyright 2008 Google Inc. All Rights Reserved.
+// Copyright 2008 the V8 project authors. All rights reserved.
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 // met:
diff --git a/test/mozilla/mozilla.status b/test/mozilla/mozilla.status
index 24b3fda..52f9c43 100644
--- a/test/mozilla/mozilla.status
+++ b/test/mozilla/mozilla.status
@@ -1,4 +1,4 @@
-# Copyright 2008 Google Inc.  All rights reserved.
+# Copyright 2008 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
 # met:
@@ -165,8 +165,10 @@
 js1_5/extensions/regress-371636: PASS || FAIL
 
 
-# Test depends on GC timings. Inherently flaky.
+# Tests depend on GC timings. Inherently flaky.
 js1_5/GC/regress-383269-01: PASS || FAIL
+js1_5/GC/regress-383269-02: PASS || FAIL
+js1_5/Regress/regress-404755: PASS || FAIL
 
 
 ##################### INCOMPATIBLE TESTS #####################
@@ -752,6 +754,7 @@
 
 # This test is flaky because of the default timer resolution on Windows.
 js1_5/extensions/regress-363258: PASS || FAIL
+mozilla/js1_5/GC/regress-383269-02: PASS, FLAKY IF $mode == debug
 
 [ $FAST == yes ]
 
diff --git a/test/mozilla/testcfg.py b/test/mozilla/testcfg.py
index 96fe4f3..8193b82 100644
--- a/test/mozilla/testcfg.py
+++ b/test/mozilla/testcfg.py
@@ -1,4 +1,4 @@
-# Copyright 2008 Google Inc.  All rights reserved.
+# Copyright 2008 the V8 project authors. All rights reserved.
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are
 # met:
@@ -82,6 +82,9 @@
   def GetName(self):
     return self.path[-1]
 
+  def GetSource(self):
+    return open(self.filename).read()
+
 
 class MozillaTestConfiguration(test.TestConfiguration):