Author: [email protected]
Date: Wed Apr  8 14:05:29 2009
New Revision: 1687

Modified:
    branches/bleeding_edge/src/api.cc
    branches/bleeding_edge/test/cctest/test-api.cc

Log:
Fix v8::Object::DeleteHiddenValue to not bail when there are no hidden  
properties.


Review URL: http://codereview.chromium.org/58016


Modified: branches/bleeding_edge/src/api.cc
==============================================================================
--- branches/bleeding_edge/src/api.cc   (original)
+++ branches/bleeding_edge/src/api.cc   Wed Apr  8 14:05:29 2009
@@ -2077,13 +2077,13 @@
    ON_BAILOUT("v8::DeleteHiddenValue()", return false);
    ENTER_V8;
    i::Handle<i::JSObject> self = Utils::OpenHandle(this);
-  i::Handle<i::JSObject> hidden_props(
-      i::JSObject::cast(*i::GetHiddenProperties(self, false)));
+  i::Handle<i::Object> hidden_props(i::GetHiddenProperties(self, false));
    if (hidden_props->IsUndefined()) {
-    return false;
+    return true;
    }
+  i::Handle<i::JSObject> js_obj(i::JSObject::cast(*hidden_props));
    i::Handle<i::String> key_obj = Utils::OpenHandle(*key);
-  return i::DeleteProperty(hidden_props, key_obj)->IsTrue();
+  return i::DeleteProperty(js_obj, key_obj)->IsTrue();
  }



Modified: branches/bleeding_edge/test/cctest/test-api.cc
==============================================================================
--- branches/bleeding_edge/test/cctest/test-api.cc      (original)
+++ branches/bleeding_edge/test/cctest/test-api.cc      Wed Apr  8 14:05:29 2009
@@ -1293,6 +1293,9 @@

    i::Heap::CollectAllGarbage();

+  // Make sure delete of a non-existent hidden value works
+  CHECK(obj->DeleteHiddenValue(key));
+
    CHECK(obj->SetHiddenValue(key, v8::Integer::New(1503)));
    CHECK_EQ(1503, obj->GetHiddenValue(key)->Int32Value());
    CHECK(obj->SetHiddenValue(key, v8::Integer::New(2002)));

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

Reply via email to