| 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 5302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5313 i::Handle<i::Object> result = internal_isolate->factory()->NewNumber(value); | 5313 i::Handle<i::Object> result = internal_isolate->factory()->NewNumber(value); |
| 5314 return Utils::IntegerToLocal(result); | 5314 return Utils::IntegerToLocal(result); |
| 5315 } | 5315 } |
| 5316 | 5316 |
| 5317 | 5317 |
| 5318 void V8::IgnoreOutOfMemoryException() { | 5318 void V8::IgnoreOutOfMemoryException() { |
| 5319 EnterIsolateIfNeeded()->set_ignore_out_of_memory(true); | 5319 EnterIsolateIfNeeded()->set_ignore_out_of_memory(true); |
| 5320 } | 5320 } |
| 5321 | 5321 |
| 5322 | 5322 |
| 5323 bool V8::AddMessageListener(MessageCallback that) { | 5323 bool V8::AddMessageListener(MessageCallback that, Handle<Value> data) { |
| 5324 i::Isolate* isolate = i::Isolate::Current(); | 5324 i::Isolate* isolate = i::Isolate::Current(); |
| 5325 EnsureInitializedForIsolate(isolate, "v8::V8::AddMessageListener()"); | 5325 EnsureInitializedForIsolate(isolate, "v8::V8::AddMessageListener()"); |
| 5326 ON_BAILOUT(isolate, "v8::V8::AddMessageListener()", return false); | 5326 ON_BAILOUT(isolate, "v8::V8::AddMessageListener()", return false); |
| 5327 ENTER_V8(isolate); | 5327 ENTER_V8(isolate); |
| 5328 i::HandleScope scope(isolate); | 5328 i::HandleScope scope(isolate); |
| 5329 NeanderArray listeners(isolate->factory()->message_listeners()); | 5329 NeanderArray listeners(isolate->factory()->message_listeners()); |
| 5330 listeners.add(isolate->factory()->NewForeign(FUNCTION_ADDR(that))); | 5330 NeanderObject obj(2); |
| 5331 obj.set(0, *isolate->factory()->NewForeign(FUNCTION_ADDR(that))); |
| 5332 obj.set(1, data.IsEmpty() ? isolate->heap()->undefined_value() |
| 5333 : *Utils::OpenHandle(*data)); |
| 5334 listeners.add(obj.value()); |
| 5331 return true; | 5335 return true; |
| 5332 } | 5336 } |
| 5333 | 5337 |
| 5334 | 5338 |
| 5335 void V8::RemoveMessageListeners(MessageCallback that) { | 5339 void V8::RemoveMessageListeners(MessageCallback that) { |
| 5336 i::Isolate* isolate = i::Isolate::Current(); | 5340 i::Isolate* isolate = i::Isolate::Current(); |
| 5337 EnsureInitializedForIsolate(isolate, "v8::V8::RemoveMessageListener()"); | 5341 EnsureInitializedForIsolate(isolate, "v8::V8::RemoveMessageListener()"); |
| 5338 ON_BAILOUT(isolate, "v8::V8::RemoveMessageListeners()", return); | 5342 ON_BAILOUT(isolate, "v8::V8::RemoveMessageListeners()", return); |
| 5339 ENTER_V8(isolate); | 5343 ENTER_V8(isolate); |
| 5340 i::HandleScope scope(isolate); | 5344 i::HandleScope scope(isolate); |
| 5341 NeanderArray listeners(isolate->factory()->message_listeners()); | 5345 NeanderArray listeners(isolate->factory()->message_listeners()); |
| 5342 for (int i = 0; i < listeners.length(); i++) { | 5346 for (int i = 0; i < listeners.length(); i++) { |
| 5343 if (listeners.get(i)->IsUndefined()) continue; // skip deleted ones | 5347 if (listeners.get(i)->IsUndefined()) continue; // skip deleted ones |
| 5344 | 5348 |
| 5345 i::Handle<i::Foreign> callback_obj(i::Foreign::cast(listeners.get(i))); | 5349 NeanderObject listener(i::JSObject::cast(listeners.get(i))); |
| 5350 i::Handle<i::Foreign> callback_obj(i::Foreign::cast(listener.get(0))); |
| 5346 if (callback_obj->foreign_address() == FUNCTION_ADDR(that)) { | 5351 if (callback_obj->foreign_address() == FUNCTION_ADDR(that)) { |
| 5347 listeners.set(i, isolate->heap()->undefined_value()); | 5352 listeners.set(i, isolate->heap()->undefined_value()); |
| 5348 } | 5353 } |
| 5349 } | 5354 } |
| 5350 } | 5355 } |
| 5351 | 5356 |
| 5352 | 5357 |
| 5353 void V8::SetCaptureStackTraceForUncaughtExceptions( | 5358 void V8::SetCaptureStackTraceForUncaughtExceptions( |
| 5354 bool capture, | 5359 bool capture, |
| 5355 int frame_limit, | 5360 int frame_limit, |
| (...skipping 1339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6695 | 6700 |
| 6696 v->VisitPointers(blocks_.first(), first_block_limit_); | 6701 v->VisitPointers(blocks_.first(), first_block_limit_); |
| 6697 | 6702 |
| 6698 for (int i = 1; i < blocks_.length(); i++) { | 6703 for (int i = 1; i < blocks_.length(); i++) { |
| 6699 v->VisitPointers(blocks_[i], &blocks_[i][kHandleBlockSize]); | 6704 v->VisitPointers(blocks_[i], &blocks_[i][kHandleBlockSize]); |
| 6700 } | 6705 } |
| 6701 } | 6706 } |
| 6702 | 6707 |
| 6703 | 6708 |
| 6704 } } // namespace v8::internal | 6709 } } // namespace v8::internal |
| OLD | NEW |