Chromium Code Reviews| 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 20473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 20484 "function setAge(i) { obj.age = i };" | 20484 "function setAge(i) { obj.age = i };" |
| 20485 "setAge(100);" | 20485 "setAge(100);" |
| 20486 "setAge(101);" | 20486 "setAge(101);" |
| 20487 "setAge(102);" | 20487 "setAge(102);" |
| 20488 "%OptimizeFunctionOnNextCall(setAge);" | 20488 "%OptimizeFunctionOnNextCall(setAge);" |
| 20489 "setAge(103);"); | 20489 "setAge(103);"); |
| 20490 ExpectInt32("obj.age", 100000); | 20490 ExpectInt32("obj.age", 100000); |
| 20491 ExpectInt32("obj.interceptor_age", 103); | 20491 ExpectInt32("obj.interceptor_age", 103); |
| 20492 } | 20492 } |
| 20493 | 20493 |
| 20494 | |
| 20495 static Local<Value> function_new_expected_env; | |
| 20496 static void FunctionNewCallback(const v8::FunctionCallbackInfo<Value>& info) { | |
| 20497 CHECK_EQ(function_new_expected_env, info.Data()); | |
| 20498 info.GetReturnValue().Set(17); | |
| 20499 } | |
| 20500 | |
| 20501 | |
| 20502 THREADED_TEST(FunctionNew) { | |
| 20503 LocalContext env; | |
| 20504 v8::Isolate* isolate = env->GetIsolate(); | |
| 20505 v8::HandleScope scope(isolate); | |
| 20506 Local<Object> data = v8::Object::New(); | |
| 20507 function_new_expected_env = data; | |
| 20508 Local<Function> func = Function::New(isolate, FunctionNewCallback, data); | |
| 20509 env->Global()->Set(v8_str("func"), func); | |
| 20510 Local<Value> result = CompileRun("func();"); | |
| 20511 CHECK_EQ(v8::Integer::New(17, isolate), result); | |
| 20512 // Verify function not cached | |
| 20513 int serial_number = | |
| 20514 i::Smi::cast(v8::Utils::OpenHandle(*func) | |
| 20515 ->shared()->get_api_func_data()->serial_number())->value(); | |
| 20516 i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate); | |
| 20517 i::Object* elm = i_isolate->native_context()->function_cache() | |
| 20518 ->GetElementNoExceptionThrown(i_isolate, serial_number); | |
| 20519 CHECK(elm->IsNull()); | |
| 20520 } | |
| 20521 | |
| 20522 | |
| 20494 #endif // V8_OS_POSIX | 20523 #endif // V8_OS_POSIX |
|
Michael Starzinger
2013/09/06 14:41:50
I think this #endif was already misplaced before.
dcarney
2013/09/06 17:59:49
when i see a 20,000 line file, I just stick new co
| |
| OLD | NEW |