OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 1764 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1775 v8::Handle<Value> result(script->Run()); | 1775 v8::Handle<Value> result(script->Run()); |
1776 CHECK_EQ(13.4, result->NumberValue()); | 1776 CHECK_EQ(13.4, result->NumberValue()); |
1777 CHECK_EQ(200, v8_compile("x")->Run()->Int32Value()); | 1777 CHECK_EQ(200, v8_compile("x")->Run()->Int32Value()); |
1778 CHECK_EQ(876, v8_compile("m")->Run()->Int32Value()); | 1778 CHECK_EQ(876, v8_compile("m")->Run()->Int32Value()); |
1779 } | 1779 } |
1780 | 1780 |
1781 | 1781 |
1782 THREADED_TEST(ObjectTemplate) { | 1782 THREADED_TEST(ObjectTemplate) { |
1783 v8::Isolate* isolate = CcTest::isolate(); | 1783 v8::Isolate* isolate = CcTest::isolate(); |
1784 v8::HandleScope scope(isolate); | 1784 v8::HandleScope scope(isolate); |
1785 Local<ObjectTemplate> templ1 = ObjectTemplate::New(isolate); | 1785 Local<v8::FunctionTemplate> fun = v8::FunctionTemplate::New(isolate); |
| 1786 v8::Local<v8::String> class_name = |
| 1787 v8::String::NewFromUtf8(isolate, "the_class_name"); |
| 1788 fun->SetClassName(class_name); |
| 1789 Local<ObjectTemplate> templ1 = ObjectTemplate::New(isolate, fun); |
1786 templ1->Set(isolate, "x", v8_num(10)); | 1790 templ1->Set(isolate, "x", v8_num(10)); |
1787 templ1->Set(isolate, "y", v8_num(13)); | 1791 templ1->Set(isolate, "y", v8_num(13)); |
1788 LocalContext env; | 1792 LocalContext env; |
1789 Local<v8::Object> instance1 = templ1->NewInstance(); | 1793 Local<v8::Object> instance1 = templ1->NewInstance(); |
| 1794 CHECK(class_name->StrictEquals(instance1->GetConstructorName())); |
1790 env->Global()->Set(v8_str("p"), instance1); | 1795 env->Global()->Set(v8_str("p"), instance1); |
1791 CHECK(v8_compile("(p.x == 10)")->Run()->BooleanValue()); | 1796 CHECK(v8_compile("(p.x == 10)")->Run()->BooleanValue()); |
1792 CHECK(v8_compile("(p.y == 13)")->Run()->BooleanValue()); | 1797 CHECK(v8_compile("(p.y == 13)")->Run()->BooleanValue()); |
1793 Local<v8::FunctionTemplate> fun = v8::FunctionTemplate::New(isolate); | 1798 Local<v8::FunctionTemplate> fun2 = v8::FunctionTemplate::New(isolate); |
1794 fun->PrototypeTemplate()->Set(isolate, "nirk", v8_num(123)); | 1799 fun2->PrototypeTemplate()->Set(isolate, "nirk", v8_num(123)); |
1795 Local<ObjectTemplate> templ2 = fun->InstanceTemplate(); | 1800 Local<ObjectTemplate> templ2 = fun2->InstanceTemplate(); |
1796 templ2->Set(isolate, "a", v8_num(12)); | 1801 templ2->Set(isolate, "a", v8_num(12)); |
1797 templ2->Set(isolate, "b", templ1); | 1802 templ2->Set(isolate, "b", templ1); |
1798 Local<v8::Object> instance2 = templ2->NewInstance(); | 1803 Local<v8::Object> instance2 = templ2->NewInstance(); |
1799 env->Global()->Set(v8_str("q"), instance2); | 1804 env->Global()->Set(v8_str("q"), instance2); |
1800 CHECK(v8_compile("(q.nirk == 123)")->Run()->BooleanValue()); | 1805 CHECK(v8_compile("(q.nirk == 123)")->Run()->BooleanValue()); |
1801 CHECK(v8_compile("(q.a == 12)")->Run()->BooleanValue()); | 1806 CHECK(v8_compile("(q.a == 12)")->Run()->BooleanValue()); |
1802 CHECK(v8_compile("(q.b.x == 10)")->Run()->BooleanValue()); | 1807 CHECK(v8_compile("(q.b.x == 10)")->Run()->BooleanValue()); |
1803 CHECK(v8_compile("(q.b.y == 13)")->Run()->BooleanValue()); | 1808 CHECK(v8_compile("(q.b.y == 13)")->Run()->BooleanValue()); |
1804 } | 1809 } |
1805 | 1810 |
(...skipping 19199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
21005 | 21010 |
21006 { | 21011 { |
21007 v8::HandleScope handle_scope(isolate); | 21012 v8::HandleScope handle_scope(isolate); |
21008 | 21013 |
21009 // Should work | 21014 // Should work |
21010 v8::Local<v8::Object> obj = v8::Object::New(isolate); | 21015 v8::Local<v8::Object> obj = v8::Object::New(isolate); |
21011 | 21016 |
21012 USE(obj); | 21017 USE(obj); |
21013 } | 21018 } |
21014 } | 21019 } |
OLD | NEW |