Revision: 20475
Author:   yang...@chromium.org
Date:     Thu Apr  3 12:09:14 2014 UTC
Log:      Revert "Return MaybeHandle from NewConsString."

This reverts r20473.

R=mvstan...@chromium.org

Review URL: https://codereview.chromium.org/223593004
http://code.google.com/p/v8/source/detail?r=20475

Modified:
 /branches/bleeding_edge/src/api.cc
 /branches/bleeding_edge/src/factory.cc
 /branches/bleeding_edge/src/factory.h
 /branches/bleeding_edge/src/func-name-inferrer.cc
 /branches/bleeding_edge/src/handles.h
 /branches/bleeding_edge/src/isolate.h
 /branches/bleeding_edge/src/json-stringifier.h
 /branches/bleeding_edge/src/parser.cc
 /branches/bleeding_edge/src/runtime.cc
 /branches/bleeding_edge/src/uri.h
 /branches/bleeding_edge/test/cctest/test-heap-profiler.cc
 /branches/bleeding_edge/test/cctest/test-strings.cc

=======================================
--- /branches/bleeding_edge/src/api.cc  Thu Apr  3 11:38:01 2014 UTC
+++ /branches/bleeding_edge/src/api.cc  Thu Apr  3 12:09:14 2014 UTC
@@ -5459,9 +5459,10 @@
   LOG_API(isolate, "String::New(char)");
   ENTER_V8(isolate);
   i::Handle<i::String> right_string = Utils::OpenHandle(*right);
+ i::Handle<i::String> result = isolate->factory()->NewConsString(left_string, + right_string);
   // We do not expect this to fail. Change this if it does.
-  i::Handle<i::String> result = isolate->factory()->NewConsString(
-      left_string, right_string).ToHandleChecked();
+  CHECK(!result.is_null());
   return Utils::ToLocal(result);
 }

@@ -7032,15 +7033,15 @@
   i::Isolate* isolate = i::Isolate::Current();
const i::ProfileNode* node = reinterpret_cast<const i::ProfileNode*>(this);
   const i::CodeEntry* entry = node->entry();
-  i::Handle<i::String> name =
-      isolate->factory()->InternalizeUtf8String(entry->name());
   if (!entry->has_name_prefix()) {
-    return ToApiHandle<String>(name);
+    return ToApiHandle<String>(
+        isolate->factory()->InternalizeUtf8String(entry->name()));
   } else {
-    // We do not expect this to fail. Change this if it does.
     i::Handle<i::String> cons = isolate->factory()->NewConsString(
         isolate->factory()->InternalizeUtf8String(entry->name_prefix()),
-        name).ToHandleChecked();
+        isolate->factory()->InternalizeUtf8String(entry->name()));
+    // We do not expect this to fail. Change this if it does.
+    CHECK(!cons.is_null());
     return ToApiHandle<String>(cons);
   }
 }
=======================================
--- /branches/bleeding_edge/src/factory.cc      Thu Apr  3 11:38:01 2014 UTC
+++ /branches/bleeding_edge/src/factory.cc      Thu Apr  3 12:09:14 2014 UTC
@@ -334,8 +334,8 @@
 }


-MaybeHandle<String> Factory::NewConsString(Handle<String> left,
-                                           Handle<String> right) {
+Handle<String> Factory::NewConsString(Handle<String> left,
+                                      Handle<String> right) {
   int left_length = left->length();
   if (left_length == 0) return right;
   int right_length = right->length();
@@ -352,8 +352,8 @@
   // Make sure that an out of memory exception is thrown if the length
   // of the new cons string is too large.
   if (length > String::kMaxLength || length < 0) {
-    return isolate()->Throw<String>(
-        isolate()->factory()->NewInvalidStringLengthError());
+    isolate()->ThrowInvalidStringLength();
+    return Handle<String>::null();
   }

   bool left_is_one_byte = left->IsOneByteRepresentation();
=======================================
--- /branches/bleeding_edge/src/factory.h       Thu Apr  3 11:38:01 2014 UTC
+++ /branches/bleeding_edge/src/factory.h       Thu Apr  3 12:09:14 2014 UTC
@@ -140,8 +140,8 @@
       PretenureFlag pretenure = NOT_TENURED);

   // Create a new cons string object which consists of a pair of strings.
-  MUST_USE_RESULT MaybeHandle<String> NewConsString(Handle<String> left,
-                                                    Handle<String> right);
+  Handle<String> NewConsString(Handle<String> left,
+                               Handle<String> right);

   Handle<ConsString> NewRawConsString(String::Encoding encoding);

@@ -436,11 +436,6 @@
                                Vector< Handle<Object> > args);
   Handle<Object> NewRangeError(Handle<String> message);

-  Handle<Object> NewInvalidStringLengthError() {
-    return NewRangeError("invalid_string_length",
-                         HandleVector<Object>(NULL, 0));
-  }
-
   Handle<Object> NewSyntaxError(const char* message, Handle<JSArray> args);
   Handle<Object> NewSyntaxError(Handle<String> message);

=======================================
--- /branches/bleeding_edge/src/func-name-inferrer.cc Thu Apr 3 11:38:01 2014 UTC +++ /branches/bleeding_edge/src/func-name-inferrer.cc Thu Apr 3 12:09:14 2014 UTC
@@ -86,9 +86,10 @@
       Handle<String> name = names_stack_.at(pos).name;
if (prev->length() + name->length() + 1 > String::kMaxLength) return prev;
       Factory* factory = isolate()->factory();
-      Handle<String> curr =
- factory->NewConsString(factory->dot_string(), name).ToHandleChecked();
-      curr = factory->NewConsString(prev, curr).ToHandleChecked();
+ Handle<String> curr = factory->NewConsString(factory->dot_string(), name);
+      CHECK_NOT_EMPTY_HANDLE(isolate(), curr);
+      curr = factory->NewConsString(prev, curr);
+      CHECK_NOT_EMPTY_HANDLE(isolate(), curr);
       return MakeNameFromStackHelper(pos + 1, curr);
     } else {
       return MakeNameFromStackHelper(pos + 1, names_stack_.at(pos).name);
=======================================
--- /branches/bleeding_edge/src/handles.h       Thu Apr  3 11:38:01 2014 UTC
+++ /branches/bleeding_edge/src/handles.h       Thu Apr  3 12:09:14 2014 UTC
@@ -37,7 +37,6 @@
 // A Handle can be converted into a MaybeHandle. Converting a MaybeHandle
 // into a Handle requires checking that it does not point to NULL.  This
 // ensures NULL checks before use.
-// Do not use MaybeHandle as argument type.

 template<typename T>
 class MaybeHandle {
=======================================
--- /branches/bleeding_edge/src/isolate.h       Thu Apr  3 11:38:01 2014 UTC
+++ /branches/bleeding_edge/src/isolate.h       Thu Apr  3 12:09:14 2014 UTC
@@ -179,7 +179,7 @@

 #define RETURN_ON_EXCEPTION_VALUE(isolate, dst, call, value)  \
   do {                                                             \
-    if ((call).is_null()) {                                        \
+    if (call.is_null()) {                                          \
       ASSERT((isolate)->has_pending_exception());                  \
       return value;                                                \
     }                                                              \
=======================================
--- /branches/bleeding_edge/src/json-stringifier.h Thu Apr 3 11:38:01 2014 UTC +++ /branches/bleeding_edge/src/json-stringifier.h Thu Apr 3 12:09:14 2014 UTC
@@ -501,11 +501,8 @@
   part_length_ = kInitialPartLength;  // Allocate conservatively.
   Extend();             // Attach current part and allocate new part.
   // Attach result string to the accumulator.
-  Handle<String> cons;
-  ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-      isolate_, cons,
-      factory_->NewConsString(accumulator(), result_string),
-      EXCEPTION);
+ Handle<String> cons = factory_->NewConsString(accumulator(), result_string);
+  RETURN_IF_EMPTY_HANDLE_VALUE(isolate_, cons, EXCEPTION);
   set_accumulator(cons);
   return SUCCESS;
 }
@@ -734,8 +731,7 @@
     set_accumulator(factory_->empty_string());
     overflowed_ = true;
   } else {
-    set_accumulator(factory_->NewConsString(accumulator(),
- current_part_).ToHandleChecked());
+    set_accumulator(factory_->NewConsString(accumulator(), current_part_));
   }
 }

=======================================
--- /branches/bleeding_edge/src/parser.cc       Thu Apr  3 11:38:01 2014 UTC
+++ /branches/bleeding_edge/src/parser.cc       Thu Apr  3 12:09:14 2014 UTC
@@ -2974,11 +2974,9 @@
// TODO(keuchel): Move the temporary variable to the block scope, after
         // implementing stack allocated block scoped variables.
         Factory* heap_factory = isolate()->factory();
-        Handle<String> tempstr;
-        ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-            isolate(), tempstr,
- heap_factory->NewConsString(heap_factory->dot_for_string(), name),
-            0);
+        Handle<String> tempstr =
+ heap_factory->NewConsString(heap_factory->dot_for_string(), name);
+        RETURN_IF_EMPTY_HANDLE_VALUE(isolate(), tempstr, 0);
         Handle<String> tempname = heap_factory->InternalizeString(tempstr);
Variable* temp = scope_->DeclarationScope()->NewTemporary(tempname);
         VariableProxy* temp_proxy = factory()->NewVariableProxy(temp);
=======================================
--- /branches/bleeding_edge/src/runtime.cc      Thu Apr  3 11:38:01 2014 UTC
+++ /branches/bleeding_edge/src/runtime.cc      Thu Apr  3 12:09:14 2014 UTC
@@ -4236,34 +4236,35 @@
 }


-// This may return an empty MaybeHandle if an exception is thrown or
-// we abort due to reaching the recursion limit.
-MaybeHandle<String> StringReplaceOneCharWithString(Isolate* isolate,
-                                                   Handle<String> subject,
-                                                   Handle<String> search,
-                                                   Handle<String> replace,
-                                                   bool* found,
-                                                   int recursion_limit) {
-  if (recursion_limit == 0) return MaybeHandle<String>();
-  recursion_limit--;
+Handle<String> StringReplaceOneCharWithString(Isolate* isolate,
+                                              Handle<String> subject,
+                                              Handle<String> search,
+                                              Handle<String> replace,
+                                              bool* found,
+                                              int recursion_limit) {
+  if (recursion_limit == 0) return Handle<String>::null();
   if (subject->IsConsString()) {
     ConsString* cons = ConsString::cast(*subject);
     Handle<String> first = Handle<String>(cons->first());
     Handle<String> second = Handle<String>(cons->second());
-    Handle<String> new_first;
-    if (!StringReplaceOneCharWithString(
-            isolate, first, search, replace, found, recursion_limit)
-            .ToHandle(&new_first)) {
-      return MaybeHandle<String>();
-    }
+    Handle<String> new_first =
+        StringReplaceOneCharWithString(isolate,
+                                       first,
+                                       search,
+                                       replace,
+                                       found,
+                                       recursion_limit - 1);
+    if (new_first.is_null()) return new_first;
if (*found) return isolate->factory()->NewConsString(new_first, second);

-    Handle<String> new_second;
-    if (!StringReplaceOneCharWithString(
-            isolate, second, search, replace, found, recursion_limit)
-            .ToHandle(&new_second)) {
-      return MaybeHandle<String>();
-    }
+    Handle<String> new_second =
+        StringReplaceOneCharWithString(isolate,
+                                       second,
+                                       search,
+                                       replace,
+                                       found,
+                                       recursion_limit - 1);
+    if (new_second.is_null()) return new_second;
if (*found) return isolate->factory()->NewConsString(first, new_second);

     return subject;
@@ -4272,11 +4273,8 @@
     if (index == -1) return subject;
     *found = true;
Handle<String> first = isolate->factory()->NewSubString(subject, 0, index);
-    Handle<String> cons1;
-    ASSIGN_RETURN_ON_EXCEPTION(
-        isolate, cons1,
-        isolate->factory()->NewConsString(first, replace),
-        String);
+ Handle<String> cons1 = isolate->factory()->NewConsString(first, replace);
+    RETURN_IF_EMPTY_HANDLE_VALUE(isolate, cons1, Handle<String>());
     Handle<String> second =
isolate->factory()->NewSubString(subject, index + 1, subject->length());
     return isolate->factory()->NewConsString(cons1, second);
@@ -4295,20 +4293,20 @@
   // retry with a flattened subject string.
   const int kRecursionLimit = 0x1000;
   bool found = false;
-  Handle<String> result;
-  if (StringReplaceOneCharWithString(
-          isolate, subject, search, replace, &found, kRecursionLimit)
-          .ToHandle(&result)) {
-    return *result;
-  }
+  Handle<String> result = StringReplaceOneCharWithString(isolate,
+                                                         subject,
+                                                         search,
+                                                         replace,
+                                                         &found,
+                                                         kRecursionLimit);
+  if (!result.is_null()) return *result;
   if (isolate->has_pending_exception()) return Failure::Exception();
-
-  subject = FlattenGetString(subject);
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      StringReplaceOneCharWithString(
-          isolate, subject, search, replace, &found, kRecursionLimit));
-  return *result;
+  return *StringReplaceOneCharWithString(isolate,
+                                         FlattenGetString(subject),
+                                         search,
+                                         replace,
+                                         &found,
+                                         kRecursionLimit);
 }


@@ -6297,13 +6295,9 @@
   CONVERT_ARG_HANDLE_CHECKED(String, source, 0);
   Handle<String> string = FlattenGetString(source);
   ASSERT(string->IsFlat());
-  Handle<String> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      string->IsOneByteRepresentationUnderneath()
-            ? URIUnescape::Unescape<uint8_t>(isolate, source)
-            : URIUnescape::Unescape<uc16>(isolate, source));
-  return *result;
+  return string->IsOneByteRepresentationUnderneath()
+      ? *URIUnescape::Unescape<uint8_t>(isolate, source)
+      : *URIUnescape::Unescape<uc16>(isolate, source);
 }


@@ -7073,9 +7067,8 @@
   CONVERT_ARG_HANDLE_CHECKED(String, str1, 0);
   CONVERT_ARG_HANDLE_CHECKED(String, str2, 1);
   isolate->counters()->string_add_runtime()->Increment();
-  Handle<String> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, isolate->factory()->NewConsString(str1, str2));
+  Handle<String> result = isolate->factory()->NewConsString(str1, str2);
+  RETURN_IF_EMPTY_HANDLE(isolate, result);
   return *result;
 }

=======================================
--- /branches/bleeding_edge/src/uri.h   Thu Apr  3 11:38:01 2014 UTC
+++ /branches/bleeding_edge/src/uri.h   Thu Apr  3 12:09:14 2014 UTC
@@ -61,13 +61,13 @@
 class URIUnescape : public AllStatic {
  public:
   template<typename Char>
- static MaybeHandle<String> Unescape(Isolate* isolate, Handle<String> source);
+  static Handle<String> Unescape(Isolate* isolate, Handle<String> source);

  private:
   static const signed char kHexValue['g'];

   template<typename Char>
-  static MaybeHandle<String> UnescapeSlow(
+  static Handle<String> UnescapeSlow(
       Isolate* isolate, Handle<String> string, int start_index);

   static INLINE(int TwoDigitHex(uint16_t character1, uint16_t character2));
@@ -91,8 +91,7 @@


 template<typename Char>
-MaybeHandle<String> URIUnescape::Unescape(Isolate* isolate,
-                                          Handle<String> source) {
+Handle<String> URIUnescape::Unescape(Isolate* isolate, Handle<String> source) {
   int index;
   { DisallowHeapAllocation no_allocation;
     StringSearch<uint8_t, Char> search(isolate, STATIC_ASCII_VECTOR("%"));
@@ -104,7 +103,7 @@


 template <typename Char>
-MaybeHandle<String> URIUnescape::UnescapeSlow(
+Handle<String> URIUnescape::UnescapeSlow(
     Isolate* isolate, Handle<String> string, int start_index) {
   bool one_byte = true;
   int length = string->length();
=======================================
--- /branches/bleeding_edge/test/cctest/test-heap-profiler.cc Thu Apr 3 11:38:01 2014 UTC +++ /branches/bleeding_edge/test/cctest/test-heap-profiler.cc Thu Apr 3 12:09:14 2014 UTC
@@ -445,8 +445,7 @@
       factory->NewStringFromAscii(i::CStrVector("0123456789"));
   i::Handle<i::String> second =
       factory->NewStringFromAscii(i::CStrVector("0123456789"));
-  i::Handle<i::String> cons_string =
-      factory->NewConsString(first, second).ToHandleChecked();
+  i::Handle<i::String> cons_string = factory->NewConsString(first, second);

   global->SetInternalField(0, v8::ToApiHandle<v8::String>(cons_string));

=======================================
--- /branches/bleeding_edge/test/cctest/test-strings.cc Thu Apr 3 11:38:01 2014 UTC +++ /branches/bleeding_edge/test/cctest/test-strings.cc Thu Apr 3 12:09:14 2014 UTC
@@ -447,7 +447,7 @@
     left = ConstructRandomString(data, max_recursion - 1);
   }
   // Build the cons string.
- Handle<String> root = factory->NewConsString(left, right).ToHandleChecked();
+  Handle<String> root = factory->NewConsString(left, right);
   CHECK(root->IsConsString() && !root->IsFlat());
   // Special work needed for flat string.
   if (flat) {
@@ -467,8 +467,7 @@
   data->stats_.leaves_++;
   for (int i = 0; i < depth; i++) {
     Handle<String> block = data->block(i);
-    Handle<String> next =
-        factory->NewConsString(answer, block).ToHandleChecked();
+    Handle<String> next = factory->NewConsString(answer, block);
     if (next->IsConsString()) data->stats_.leaves_++;
     data->stats_.chars_ += block->length();
     answer = next;
@@ -486,8 +485,7 @@
   data->stats_.leaves_++;
   for (int i = depth - 1; i >= 0; i--) {
     Handle<String> block = data->block(i);
-    Handle<String> next =
-        factory->NewConsString(block, answer).ToHandleChecked();
+    Handle<String> next = factory->NewConsString(block, answer);
     if (next->IsConsString()) data->stats_.leaves_++;
     data->stats_.chars_ += block->length();
     answer = next;
@@ -510,8 +508,7 @@
   if (to - from == 2) {
     data->stats_.chars_ += data->block(from)->length();
     data->stats_.chars_ += data->block(from+1)->length();
-    return factory->NewConsString(data->block(from), data->block(from+1))
-        .ToHandleChecked();
+    return factory->NewConsString(data->block(from), data->block(from+1));
   }
   Handle<String> part1 =
     ConstructBalancedHelper(data, from, from + ((to - from) / 2));
@@ -519,7 +516,7 @@
     ConstructBalancedHelper(data, from + ((to - from) / 2), to);
   if (part1->IsConsString()) data->stats_.left_traversals_++;
   if (part2->IsConsString()) data->stats_.right_traversals_++;
-  return factory->NewConsString(part1, part2).ToHandleChecked();
+  return factory->NewConsString(part1, part2);
 }


@@ -713,8 +710,7 @@
       data->stats_.chars_ += data->block(0)->length();
       data->stats_.chars_ += data->block(1)->length();
       data->stats_.leaves_ += 2;
-      return factory->NewConsString(data->block(0), data->block(1))
-                 .ToHandleChecked();
+      return factory->NewConsString(data->block(0), data->block(1));
     case 6:
       // Simple flattened tree.
       data->stats_.chars_ += data->block(0)->length();
@@ -723,8 +719,7 @@
       data->stats_.empty_leaves_ += 1;
       {
         Handle<String> string =
-            factory->NewConsString(data->block(0), data->block(1))
-                .ToHandleChecked();
+            factory->NewConsString(data->block(0), data->block(1));
         FlattenString(string);
         return string;
       }
@@ -738,10 +733,9 @@
       data->stats_.left_traversals_ += 1;
       {
         Handle<String> left =
-            factory->NewConsString(data->block(0), data->block(1))
-                .ToHandleChecked();
+            factory->NewConsString(data->block(0), data->block(1));
         FlattenString(left);
- return factory->NewConsString(left, data->block(2)).ToHandleChecked();
+        return factory->NewConsString(left, data->block(2));
       }
     case 8:
       // Left node and right node flattened.
@@ -755,14 +749,12 @@
       data->stats_.right_traversals_ += 1;
       {
         Handle<String> left =
-            factory->NewConsString(data->block(0), data->block(1))
-                .ToHandleChecked();
+            factory->NewConsString(data->block(0), data->block(1));
         FlattenString(left);
         Handle<String> right =
-            factory->NewConsString(data->block(2), data->block(2))
-                .ToHandleChecked();
+            factory->NewConsString(data->block(2), data->block(2));
         FlattenString(right);
-        return factory->NewConsString(left, right).ToHandleChecked();
+        return factory->NewConsString(left, right);
       }
   }
   UNREACHABLE();
@@ -874,10 +866,9 @@
factory->NewStringFromAscii(Vector<const char>(foo, DEEP_ASCII_DEPTH)); Handle<String> foo_string = factory->NewStringFromAscii(CStrVector("foo"));
   for (int i = 0; i < DEEP_ASCII_DEPTH; i += 10) {
-    string = factory->NewConsString(string, foo_string).ToHandleChecked();
+    string = factory->NewConsString(string, foo_string);
   }
-  Handle<String> flat_string =
-      factory->NewConsString(string, foo_string).ToHandleChecked();
+  Handle<String> flat_string = factory->NewConsString(string, foo_string);
   FlattenString(flat_string);

   for (int i = 0; i < 500; i++) {
@@ -1101,8 +1092,7 @@
   v8::HandleScope scope(CcTest::isolate());
   Handle<String> string =
       factory->NewStringFromAscii(CStrVector("parentparentparent"));
-  Handle<String> parent =
-      factory->NewConsString(string, string).ToHandleChecked();
+  Handle<String> parent = factory->NewConsString(string, string);
   CHECK(parent->IsConsString());
   CHECK(!parent->IsFlat());
   Handle<String> slice = factory->NewSubString(parent, 1, 25);

--
--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to