| 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 642 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 653   if (IsDeadCheck(isolate, "V8::Persistent::New")) return NULL; | 653   if (IsDeadCheck(isolate, "V8::Persistent::New")) return NULL; | 
| 654   LOG_API(isolate, "Persistent::New"); | 654   LOG_API(isolate, "Persistent::New"); | 
| 655   i::Handle<i::Object> result = isolate->global_handles()->Create(*obj); | 655   i::Handle<i::Object> result = isolate->global_handles()->Create(*obj); | 
| 656 #ifdef DEBUG | 656 #ifdef DEBUG | 
| 657   (*obj)->Verify(); | 657   (*obj)->Verify(); | 
| 658 #endif  // DEBUG | 658 #endif  // DEBUG | 
| 659   return result.location(); | 659   return result.location(); | 
| 660 } | 660 } | 
| 661 | 661 | 
| 662 | 662 | 
|  | 663 i::Object** V8::CopyPersistent(i::Object** obj) { | 
|  | 664   i::Handle<i::Object> result = i::GlobalHandles::CopyGlobal(obj); | 
|  | 665 #ifdef DEBUG | 
|  | 666   (*obj)->Verify(); | 
|  | 667 #endif  // DEBUG | 
|  | 668   return result.location(); | 
|  | 669 } | 
|  | 670 | 
|  | 671 | 
| 663 void V8::MakeWeak(i::Object** object, | 672 void V8::MakeWeak(i::Object** object, | 
| 664                   void* parameters, | 673                   void* parameters, | 
|  | 674                   WeakCallback weak_callback, | 
| 665                   RevivableCallback weak_reference_callback) { | 675                   RevivableCallback weak_reference_callback) { | 
| 666   i::GlobalHandles::MakeWeak(object, | 676   i::GlobalHandles::MakeWeak(object, | 
| 667                              parameters, | 677                              parameters, | 
|  | 678                              weak_callback, | 
| 668                              weak_reference_callback); | 679                              weak_reference_callback); | 
| 669 } | 680 } | 
| 670 | 681 | 
| 671 | 682 | 
| 672 void V8::ClearWeak(i::Object** obj) { | 683 void V8::ClearWeak(i::Object** obj) { | 
| 673   i::GlobalHandles::ClearWeakness(obj); | 684   i::GlobalHandles::ClearWeakness(obj); | 
| 674 } | 685 } | 
| 675 | 686 | 
| 676 | 687 | 
| 677 void V8::DisposeGlobal(i::Object** obj) { | 688 void V8::DisposeGlobal(i::Object** obj) { | 
| (...skipping 4750 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5428       global_constructor->set_needs_access_check( | 5439       global_constructor->set_needs_access_check( | 
| 5429           proxy_constructor->needs_access_check()); | 5440           proxy_constructor->needs_access_check()); | 
| 5430     } | 5441     } | 
| 5431     isolate->runtime_profiler()->Reset(); | 5442     isolate->runtime_profiler()->Reset(); | 
| 5432   } | 5443   } | 
| 5433   // Leave V8. | 5444   // Leave V8. | 
| 5434 | 5445 | 
| 5435   return env; | 5446   return env; | 
| 5436 } | 5447 } | 
| 5437 | 5448 | 
| 5438 #ifdef V8_USE_UNSAFE_HANDLES |  | 
| 5439 Persistent<Context> v8::Context::New( |  | 
| 5440     v8::ExtensionConfiguration* extensions, |  | 
| 5441     v8::Handle<ObjectTemplate> global_template, |  | 
| 5442     v8::Handle<Value> global_object) { |  | 
| 5443   i::Isolate::EnsureDefaultIsolate(); |  | 
| 5444   i::Isolate* isolate = i::Isolate::Current(); |  | 
| 5445   Isolate* external_isolate = reinterpret_cast<Isolate*>(isolate); |  | 
| 5446   EnsureInitializedForIsolate(isolate, "v8::Context::New()"); |  | 
| 5447   LOG_API(isolate, "Context::New"); |  | 
| 5448   ON_BAILOUT(isolate, "v8::Context::New()", return Persistent<Context>()); |  | 
| 5449   i::HandleScope scope(isolate); |  | 
| 5450   i::Handle<i::Context> env = |  | 
| 5451       CreateEnvironment(isolate, extensions, global_template, global_object); |  | 
| 5452   if (env.is_null()) return Persistent<Context>(); |  | 
| 5453   return Persistent<Context>::New(external_isolate, Utils::ToLocal(env)); |  | 
| 5454 } |  | 
| 5455 #endif |  | 
| 5456 |  | 
| 5457 |  | 
| 5458 Local<Context> v8::Context::New( | 5449 Local<Context> v8::Context::New( | 
| 5459     v8::Isolate* external_isolate, | 5450     v8::Isolate* external_isolate, | 
| 5460     v8::ExtensionConfiguration* extensions, | 5451     v8::ExtensionConfiguration* extensions, | 
| 5461     v8::Handle<ObjectTemplate> global_template, | 5452     v8::Handle<ObjectTemplate> global_template, | 
| 5462     v8::Handle<Value> global_object) { | 5453     v8::Handle<Value> global_object) { | 
| 5463   i::Isolate::EnsureDefaultIsolate(); | 5454   i::Isolate::EnsureDefaultIsolate(); | 
| 5464   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(external_isolate); | 5455   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(external_isolate); | 
| 5465   EnsureInitializedForIsolate(isolate, "v8::Context::New()"); | 5456   EnsureInitializedForIsolate(isolate, "v8::Context::New()"); | 
| 5466   LOG_API(isolate, "Context::New"); | 5457   LOG_API(isolate, "Context::New"); | 
| 5467   ON_BAILOUT(isolate, "v8::Context::New()", return Local<Context>()); | 5458   ON_BAILOUT(isolate, "v8::Context::New()", return Local<Context>()); | 
| (...skipping 2433 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7901   Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); | 7892   Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); | 
| 7902   Address callback_address = | 7893   Address callback_address = | 
| 7903       reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 7894       reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 
| 7904   VMState<EXTERNAL> state(isolate); | 7895   VMState<EXTERNAL> state(isolate); | 
| 7905   ExternalCallbackScope call_scope(isolate, callback_address); | 7896   ExternalCallbackScope call_scope(isolate, callback_address); | 
| 7906   callback(info); | 7897   callback(info); | 
| 7907 } | 7898 } | 
| 7908 | 7899 | 
| 7909 | 7900 | 
| 7910 } }  // namespace v8::internal | 7901 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|