Revision: 15935
Author: [email protected]
Date: Mon Jul 29 05:37:55 2013
Log: Added unit tests for the slightly confusing Boolean/BooleanObject
API.
Just for documenting the status quo. As discussed offline, we should
probably rename/deprecate a few things:
NumberObject::NumberValue() => NumberObject::ValueOf()
BooleanObject::BooleanValue() => BooleanObject::ValueOf()
StringObject::StringValue => StringObject::ValueOf()
[email protected]
Review URL: https://codereview.chromium.org/21013003
http://code.google.com/p/v8/source/detail?r=15935
Modified:
/branches/bleeding_edge/test/cctest/test-api.cc
=======================================
--- /branches/bleeding_edge/test/cctest/test-api.cc Fri Jul 26 05:32:06 2013
+++ /branches/bleeding_edge/test/cctest/test-api.cc Mon Jul 29 05:37:55 2013
@@ -55,6 +55,8 @@
using ::v8::AccessorInfo;
using ::v8::Arguments;
+using ::v8::Boolean;
+using ::v8::BooleanObject;
using ::v8::Context;
using ::v8::Extension;
using ::v8::Function;
@@ -1542,6 +1544,54 @@
as_boxed = boxed_false.As<v8::BooleanObject>();
CHECK_EQ(false, as_boxed->BooleanValue());
}
+
+
+THREADED_TEST(PrimitiveAndWrappedBooleans) {
+ LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
+
+ Local<Value> primitive_false = Boolean::New(false);
+ CHECK(primitive_false->IsBoolean());
+ CHECK(!primitive_false->IsBooleanObject());
+ CHECK(!primitive_false->BooleanValue());
+ CHECK(!primitive_false->IsTrue());
+ CHECK(primitive_false->IsFalse());
+
+ Local<Value> false_value = BooleanObject::New(false);
+ CHECK(!false_value->IsBoolean());
+ CHECK(false_value->IsBooleanObject());
+ CHECK(false_value->BooleanValue());
+ CHECK(!false_value->IsTrue());
+ CHECK(!false_value->IsFalse());
+
+ Local<BooleanObject> false_boolean_object =
false_value.As<BooleanObject>();
+ CHECK(!false_boolean_object->IsBoolean());
+ CHECK(false_boolean_object->IsBooleanObject());
+ CHECK(!false_boolean_object->BooleanValue());
+ CHECK(!false_boolean_object->IsTrue());
+ CHECK(!false_boolean_object->IsFalse());
+
+ Local<Value> primitive_true = Boolean::New(true);
+ CHECK(primitive_true->IsBoolean());
+ CHECK(!primitive_true->IsBooleanObject());
+ CHECK(primitive_true->BooleanValue());
+ CHECK(primitive_true->IsTrue());
+ CHECK(!primitive_true->IsFalse());
+
+ Local<Value> true_value = BooleanObject::New(true);
+ CHECK(!true_value->IsBoolean());
+ CHECK(true_value->IsBooleanObject());
+ CHECK(true_value->BooleanValue());
+ CHECK(!true_value->IsTrue());
+ CHECK(!true_value->IsFalse());
+
+ Local<BooleanObject> true_boolean_object =
true_value.As<BooleanObject>();
+ CHECK(!true_boolean_object->IsBoolean());
+ CHECK(true_boolean_object->IsBooleanObject());
+ CHECK(true_boolean_object->BooleanValue());
+ CHECK(!true_boolean_object->IsTrue());
+ CHECK(!true_boolean_object->IsFalse());
+}
THREADED_TEST(Number) {
--
--
v8-dev mailing list
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.