| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index 7cb3c04087b69d5238b904861e20d4aaf75fc3fa..92ab5b8546959c820af1cd46ddfd485e80e0a83a 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -55,6 +55,8 @@ static const bool kLogThreading = false;
|
|
|
| using ::v8::AccessorInfo;
|
| using ::v8::Arguments;
|
| +using ::v8::Boolean;
|
| +using ::v8::BooleanObject;
|
| using ::v8::Context;
|
| using ::v8::Extension;
|
| using ::v8::Function;
|
| @@ -1486,13 +1488,13 @@ THREADED_TEST(StringObject) {
|
| CHECK(!not_object->IsStringObject());
|
| v8::Handle<v8::StringObject> as_boxed = boxed_string.As<v8::StringObject>();
|
| CHECK(!as_boxed.IsEmpty());
|
| - Local<v8::String> the_string = as_boxed->StringValue();
|
| + Local<v8::String> the_string = as_boxed->ValueOf();
|
| CHECK(!the_string.IsEmpty());
|
| ExpectObject("\"test\"", the_string);
|
| v8::Handle<v8::Value> new_boxed_string = v8::StringObject::New(the_string);
|
| CHECK(new_boxed_string->IsStringObject());
|
| as_boxed = new_boxed_string.As<v8::StringObject>();
|
| - the_string = as_boxed->StringValue();
|
| + the_string = as_boxed->ValueOf();
|
| CHECK(!the_string.IsEmpty());
|
| ExpectObject("\"test\"", the_string);
|
| }
|
| @@ -1509,12 +1511,12 @@ THREADED_TEST(NumberObject) {
|
| CHECK(!boxed_not_number->IsNumberObject());
|
| v8::Handle<v8::NumberObject> as_boxed = boxed_number.As<v8::NumberObject>();
|
| CHECK(!as_boxed.IsEmpty());
|
| - double the_number = as_boxed->NumberValue();
|
| + double the_number = as_boxed->ValueOf();
|
| CHECK_EQ(42.0, the_number);
|
| v8::Handle<v8::Value> new_boxed_number = v8::NumberObject::New(43);
|
| CHECK(new_boxed_number->IsNumberObject());
|
| as_boxed = new_boxed_number.As<v8::NumberObject>();
|
| - the_number = as_boxed->NumberValue();
|
| + the_number = as_boxed->ValueOf();
|
| CHECK_EQ(43.0, the_number);
|
| }
|
|
|
| @@ -1531,16 +1533,68 @@ THREADED_TEST(BooleanObject) {
|
| v8::Handle<v8::BooleanObject> as_boxed =
|
| boxed_boolean.As<v8::BooleanObject>();
|
| CHECK(!as_boxed.IsEmpty());
|
| - bool the_boolean = as_boxed->BooleanValue();
|
| + bool the_boolean = as_boxed->ValueOf();
|
| CHECK_EQ(true, the_boolean);
|
| v8::Handle<v8::Value> boxed_true = v8::BooleanObject::New(true);
|
| v8::Handle<v8::Value> boxed_false = v8::BooleanObject::New(false);
|
| CHECK(boxed_true->IsBooleanObject());
|
| CHECK(boxed_false->IsBooleanObject());
|
| as_boxed = boxed_true.As<v8::BooleanObject>();
|
| - CHECK_EQ(true, as_boxed->BooleanValue());
|
| + CHECK_EQ(true, as_boxed->ValueOf());
|
| as_boxed = boxed_false.As<v8::BooleanObject>();
|
| - CHECK_EQ(false, as_boxed->BooleanValue());
|
| + CHECK_EQ(false, as_boxed->ValueOf());
|
| +}
|
| +
|
| +
|
| +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());
|
| + // TODO(svenpanne) Uncomment when BooleanObject::BooleanValue() is deleted.
|
| + // CHECK(false_boolean_object->BooleanValue());
|
| + CHECK(!false_boolean_object->ValueOf());
|
| + 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());
|
| + // TODO(svenpanne) Uncomment when BooleanObject::BooleanValue() is deleted.
|
| + // CHECK(true_boolean_object->BooleanValue());
|
| + CHECK(true_boolean_object->ValueOf());
|
| + CHECK(!true_boolean_object->IsTrue());
|
| + CHECK(!true_boolean_object->IsFalse());
|
| }
|
|
|
|
|
| @@ -2566,7 +2620,7 @@ THREADED_TEST(SymbolProperties) {
|
| CHECK(sym_obj->Equals(sym2));
|
| CHECK(!sym_obj->StrictEquals(sym2));
|
| CHECK(v8::SymbolObject::Cast(*sym_obj)->Equals(sym_obj));
|
| - CHECK(v8::SymbolObject::Cast(*sym_obj)->SymbolValue()->Equals(sym2));
|
| + CHECK(v8::SymbolObject::Cast(*sym_obj)->ValueOf()->Equals(sym2));
|
|
|
| // Make sure delete of a non-existent symbol property works.
|
| CHECK(obj->Delete(sym1));
|
| @@ -3511,6 +3565,7 @@ static void check_message_0(v8::Handle<v8::Message> message,
|
| CHECK_EQ(5.76, data->NumberValue());
|
| CHECK_EQ(6.75, message->GetScriptResourceName()->NumberValue());
|
| CHECK_EQ(7.56, message->GetScriptData()->NumberValue());
|
| + CHECK(!message->IsSharedCrossOrigin());
|
| message_received = true;
|
| }
|
|
|
| @@ -3537,6 +3592,7 @@ static void check_message_1(v8::Handle<v8::Message> message,
|
| v8::Handle<Value> data) {
|
| CHECK(data->IsNumber());
|
| CHECK_EQ(1337, data->Int32Value());
|
| + CHECK(!message->IsSharedCrossOrigin());
|
| message_received = true;
|
| }
|
|
|
| @@ -3561,6 +3617,7 @@ static void check_message_2(v8::Handle<v8::Message> message,
|
| v8::Local<v8::Value> hidden_property =
|
| v8::Object::Cast(*data)->GetHiddenValue(v8_str("hidden key"));
|
| CHECK(v8_str("hidden value")->Equals(hidden_property));
|
| + CHECK(!message->IsSharedCrossOrigin());
|
| message_received = true;
|
| }
|
|
|
| @@ -3582,6 +3639,112 @@ TEST(MessageHandler2) {
|
| }
|
|
|
|
|
| +static void check_message_3(v8::Handle<v8::Message> message,
|
| + v8::Handle<Value> data) {
|
| + CHECK(message->IsSharedCrossOrigin());
|
| + CHECK_EQ(6.75, message->GetScriptResourceName()->NumberValue());
|
| + message_received = true;
|
| +}
|
| +
|
| +
|
| +TEST(MessageHandler3) {
|
| + message_received = false;
|
| + v8::HandleScope scope(v8::Isolate::GetCurrent());
|
| + CHECK(!message_received);
|
| + v8::V8::AddMessageListener(check_message_3);
|
| + LocalContext context;
|
| + v8::ScriptOrigin origin =
|
| + v8::ScriptOrigin(v8_str("6.75"),
|
| + v8::Integer::New(1),
|
| + v8::Integer::New(2),
|
| + v8::True());
|
| + v8::Handle<v8::Script> script = Script::Compile(v8_str("throw 'error'"),
|
| + &origin);
|
| + script->Run();
|
| + CHECK(message_received);
|
| + // clear out the message listener
|
| + v8::V8::RemoveMessageListeners(check_message_3);
|
| +}
|
| +
|
| +
|
| +static void check_message_4(v8::Handle<v8::Message> message,
|
| + v8::Handle<Value> data) {
|
| + CHECK(!message->IsSharedCrossOrigin());
|
| + CHECK_EQ(6.75, message->GetScriptResourceName()->NumberValue());
|
| + message_received = true;
|
| +}
|
| +
|
| +
|
| +TEST(MessageHandler4) {
|
| + message_received = false;
|
| + v8::HandleScope scope(v8::Isolate::GetCurrent());
|
| + CHECK(!message_received);
|
| + v8::V8::AddMessageListener(check_message_4);
|
| + LocalContext context;
|
| + v8::ScriptOrigin origin =
|
| + v8::ScriptOrigin(v8_str("6.75"),
|
| + v8::Integer::New(1),
|
| + v8::Integer::New(2),
|
| + v8::False());
|
| + v8::Handle<v8::Script> script = Script::Compile(v8_str("throw 'error'"),
|
| + &origin);
|
| + script->Run();
|
| + CHECK(message_received);
|
| + // clear out the message listener
|
| + v8::V8::RemoveMessageListeners(check_message_4);
|
| +}
|
| +
|
| +
|
| +static void check_message_5a(v8::Handle<v8::Message> message,
|
| + v8::Handle<Value> data) {
|
| + CHECK(message->IsSharedCrossOrigin());
|
| + CHECK_EQ(6.75, message->GetScriptResourceName()->NumberValue());
|
| + message_received = true;
|
| +}
|
| +
|
| +
|
| +static void check_message_5b(v8::Handle<v8::Message> message,
|
| + v8::Handle<Value> data) {
|
| + CHECK(!message->IsSharedCrossOrigin());
|
| + CHECK_EQ(6.75, message->GetScriptResourceName()->NumberValue());
|
| + message_received = true;
|
| +}
|
| +
|
| +
|
| +TEST(MessageHandler5) {
|
| + message_received = false;
|
| + v8::HandleScope scope(v8::Isolate::GetCurrent());
|
| + CHECK(!message_received);
|
| + v8::V8::AddMessageListener(check_message_5a);
|
| + LocalContext context;
|
| + v8::ScriptOrigin origin =
|
| + v8::ScriptOrigin(v8_str("6.75"),
|
| + v8::Integer::New(1),
|
| + v8::Integer::New(2),
|
| + v8::True());
|
| + v8::Handle<v8::Script> script = Script::Compile(v8_str("throw 'error'"),
|
| + &origin);
|
| + script->Run();
|
| + CHECK(message_received);
|
| + // clear out the message listener
|
| + v8::V8::RemoveMessageListeners(check_message_5a);
|
| +
|
| + message_received = false;
|
| + v8::V8::AddMessageListener(check_message_5b);
|
| + origin =
|
| + v8::ScriptOrigin(v8_str("6.75"),
|
| + v8::Integer::New(1),
|
| + v8::Integer::New(2),
|
| + v8::False());
|
| + script = Script::Compile(v8_str("throw 'error'"),
|
| + &origin);
|
| + script->Run();
|
| + CHECK(message_received);
|
| + // clear out the message listener
|
| + v8::V8::RemoveMessageListeners(check_message_5b);
|
| +}
|
| +
|
| +
|
| THREADED_TEST(GetSetProperty) {
|
| LocalContext context;
|
| v8::HandleScope scope(context->GetIsolate());
|
| @@ -13174,7 +13337,7 @@ THREADED_TEST(DateAccess) {
|
| v8::HandleScope scope(context->GetIsolate());
|
| v8::Handle<v8::Value> date = v8::Date::New(1224744689038.0);
|
| CHECK(date->IsDate());
|
| - CHECK_EQ(1224744689038.0, date.As<v8::Date>()->NumberValue());
|
| + CHECK_EQ(1224744689038.0, date.As<v8::Date>()->ValueOf());
|
| }
|
|
|
|
|
|
|