| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 14434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14445 } | 14445 } |
| 14446 | 14446 |
| 14447 | 14447 |
| 14448 TEST(RegExp) { | 14448 TEST(RegExp) { |
| 14449 v8::HandleScope scope; | 14449 v8::HandleScope scope; |
| 14450 LocalContext context; | 14450 LocalContext context; |
| 14451 | 14451 |
| 14452 v8::Handle<v8::RegExp> re = v8::RegExp::New(v8_str("foo"), v8::RegExp::kNone); | 14452 v8::Handle<v8::RegExp> re = v8::RegExp::New(v8_str("foo"), v8::RegExp::kNone); |
| 14453 CHECK(re->IsRegExp()); | 14453 CHECK(re->IsRegExp()); |
| 14454 CHECK(re->GetSource()->Equals(v8_str("foo"))); | 14454 CHECK(re->GetSource()->Equals(v8_str("foo"))); |
| 14455 CHECK_EQ(re->GetFlags(), v8::RegExp::kNone); | 14455 CHECK_EQ(v8::RegExp::kNone, re->GetFlags()); |
| 14456 | 14456 |
| 14457 re = v8::RegExp::New(v8_str("bar"), | 14457 re = v8::RegExp::New(v8_str("bar"), |
| 14458 static_cast<v8::RegExp::Flags>(v8::RegExp::kIgnoreCase | | 14458 static_cast<v8::RegExp::Flags>(v8::RegExp::kIgnoreCase | |
| 14459 v8::RegExp::kGlobal)); | 14459 v8::RegExp::kGlobal)); |
| 14460 CHECK(re->IsRegExp()); | 14460 CHECK(re->IsRegExp()); |
| 14461 CHECK(re->GetSource()->Equals(v8_str("bar"))); | 14461 CHECK(re->GetSource()->Equals(v8_str("bar"))); |
| 14462 CHECK_EQ(static_cast<int>(re->GetFlags()), | 14462 CHECK_EQ(v8::RegExp::kIgnoreCase | v8::RegExp::kGlobal, |
| 14463 v8::RegExp::kIgnoreCase | v8::RegExp::kGlobal); | 14463 static_cast<int>(re->GetFlags())); |
| 14464 | 14464 |
| 14465 re = v8::RegExp::New(v8_str("baz"), | 14465 re = v8::RegExp::New(v8_str("baz"), |
| 14466 static_cast<v8::RegExp::Flags>(v8::RegExp::kIgnoreCase | | 14466 static_cast<v8::RegExp::Flags>(v8::RegExp::kIgnoreCase | |
| 14467 v8::RegExp::kMultiline)); | 14467 v8::RegExp::kMultiline)); |
| 14468 CHECK(re->IsRegExp()); | 14468 CHECK(re->IsRegExp()); |
| 14469 CHECK(re->GetSource()->Equals(v8_str("baz"))); | 14469 CHECK(re->GetSource()->Equals(v8_str("baz"))); |
| 14470 CHECK_EQ(static_cast<int>(re->GetFlags()), | 14470 CHECK_EQ(v8::RegExp::kIgnoreCase | v8::RegExp::kMultiline, |
| 14471 v8::RegExp::kIgnoreCase | v8::RegExp::kMultiline); | 14471 static_cast<int>(re->GetFlags())); |
| 14472 | 14472 |
| 14473 re = CompileRun("/quux/").As<v8::RegExp>(); | 14473 re = CompileRun("/quux/").As<v8::RegExp>(); |
| 14474 CHECK(re->IsRegExp()); | 14474 CHECK(re->IsRegExp()); |
| 14475 CHECK(re->GetSource()->Equals(v8_str("quux"))); | 14475 CHECK(re->GetSource()->Equals(v8_str("quux"))); |
| 14476 CHECK_EQ(re->GetFlags(), v8::RegExp::kNone); | 14476 CHECK_EQ(v8::RegExp::kNone, re->GetFlags()); |
| 14477 | 14477 |
| 14478 re = CompileRun("/quux/gm").As<v8::RegExp>(); | 14478 re = CompileRun("/quux/gm").As<v8::RegExp>(); |
| 14479 CHECK(re->IsRegExp()); | 14479 CHECK(re->IsRegExp()); |
| 14480 CHECK(re->GetSource()->Equals(v8_str("quux"))); | 14480 CHECK(re->GetSource()->Equals(v8_str("quux"))); |
| 14481 CHECK_EQ(static_cast<int>(re->GetFlags()), | 14481 CHECK_EQ(v8::RegExp::kGlobal | v8::RegExp::kMultiline, |
| 14482 v8::RegExp::kGlobal | v8::RegExp::kMultiline); | 14482 static_cast<int>(re->GetFlags())); |
| 14483 | 14483 |
| 14484 // Override the RegExp constructor and check the API constructor | 14484 // Override the RegExp constructor and check the API constructor |
| 14485 // still works. | 14485 // still works. |
| 14486 CompileRun("RegExp = function() {}"); | 14486 CompileRun("RegExp = function() {}"); |
| 14487 | 14487 |
| 14488 re = v8::RegExp::New(v8_str("foobar"), v8::RegExp::kNone); | 14488 re = v8::RegExp::New(v8_str("foobar"), v8::RegExp::kNone); |
| 14489 CHECK(re->IsRegExp()); | 14489 CHECK(re->IsRegExp()); |
| 14490 CHECK(re->GetSource()->Equals(v8_str("foobar"))); | 14490 CHECK(re->GetSource()->Equals(v8_str("foobar"))); |
| 14491 CHECK_EQ(re->GetFlags(), v8::RegExp::kNone); | 14491 CHECK_EQ(v8::RegExp::kNone, re->GetFlags()); |
| 14492 | 14492 |
| 14493 re = v8::RegExp::New(v8_str("foobarbaz"), | 14493 re = v8::RegExp::New(v8_str("foobarbaz"), |
| 14494 static_cast<v8::RegExp::Flags>(v8::RegExp::kIgnoreCase | | 14494 static_cast<v8::RegExp::Flags>(v8::RegExp::kIgnoreCase | |
| 14495 v8::RegExp::kMultiline)); | 14495 v8::RegExp::kMultiline)); |
| 14496 CHECK(re->IsRegExp()); | 14496 CHECK(re->IsRegExp()); |
| 14497 CHECK(re->GetSource()->Equals(v8_str("foobarbaz"))); | 14497 CHECK(re->GetSource()->Equals(v8_str("foobarbaz"))); |
| 14498 CHECK_EQ(static_cast<int>(re->GetFlags()), | 14498 CHECK_EQ(v8::RegExp::kIgnoreCase | v8::RegExp::kMultiline, |
| 14499 v8::RegExp::kIgnoreCase | v8::RegExp::kMultiline); | 14499 static_cast<int>(re->GetFlags())); |
| 14500 | 14500 |
| 14501 context->Global()->Set(v8_str("re"), re); | 14501 context->Global()->Set(v8_str("re"), re); |
| 14502 ExpectTrue("re.test('FoobarbaZ')"); | 14502 ExpectTrue("re.test('FoobarbaZ')"); |
| 14503 | 14503 |
| 14504 // RegExps are objects on which you can set properties. | 14504 // RegExps are objects on which you can set properties. |
| 14505 re->Set(v8_str("property"), v8::Integer::New(32)); | 14505 re->Set(v8_str("property"), v8::Integer::New(32)); |
| 14506 v8::Handle<v8::Value> value = CompileRun("re.property"); | 14506 v8::Handle<v8::Value> value = CompileRun("re.property"); |
| 14507 ASSERT_EQ(32, value->Int32Value()); | 14507 ASSERT_EQ(32, value->Int32Value()); |
| 14508 | 14508 |
| 14509 v8::TryCatch try_catch; | 14509 v8::TryCatch try_catch; |
| (...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15039 | 15039 |
| 15040 Local<Value> result5 = CompileRun("Object.getPrototypeOf(hidden)"); | 15040 Local<Value> result5 = CompileRun("Object.getPrototypeOf(hidden)"); |
| 15041 CHECK(result5->Equals( | 15041 CHECK(result5->Equals( |
| 15042 object_with_hidden->GetPrototype()->ToObject()->GetPrototype())); | 15042 object_with_hidden->GetPrototype()->ToObject()->GetPrototype())); |
| 15043 | 15043 |
| 15044 Local<Value> result6 = CompileRun("Object.getPrototypeOf(phidden)"); | 15044 Local<Value> result6 = CompileRun("Object.getPrototypeOf(phidden)"); |
| 15045 CHECK(result6->Equals(Undefined())); | 15045 CHECK(result6->Equals(Undefined())); |
| 15046 | 15046 |
| 15047 context.Dispose(); | 15047 context.Dispose(); |
| 15048 } | 15048 } |
| OLD | NEW |