OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/api.h" | 5 #include "src/api.h" |
6 | 6 |
7 #include <string.h> // For memcpy, strlen. | 7 #include <string.h> // For memcpy, strlen. |
8 #ifdef V8_USE_ADDRESS_SANITIZER | 8 #ifdef V8_USE_ADDRESS_SANITIZER |
9 #include <sanitizer/asan_interface.h> | 9 #include <sanitizer/asan_interface.h> |
10 #endif // V8_USE_ADDRESS_SANITIZER | 10 #endif // V8_USE_ADDRESS_SANITIZER |
(...skipping 9272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9283 i::WasmCompiledModule::cast(script->wasm_compiled_module()); | 9283 i::WasmCompiledModule::cast(script->wasm_compiled_module()); |
9284 return compiled_module->DisassembleFunction(function_index); | 9284 return compiled_module->DisassembleFunction(function_index); |
9285 } | 9285 } |
9286 | 9286 |
9287 debug::Location::Location(int line_number, int column_number) | 9287 debug::Location::Location(int line_number, int column_number) |
9288 : line_number_(line_number), column_number_(column_number) { | 9288 : line_number_(line_number), column_number_(column_number) { |
9289 CHECK(line_number >= 0); | 9289 CHECK(line_number >= 0); |
9290 CHECK(column_number >= 0); | 9290 CHECK(column_number >= 0); |
9291 } | 9291 } |
9292 | 9292 |
9293 debug::Location::Location() : line_number_(-1), column_number_(-1) {} | 9293 debug::Location::Location() |
| 9294 : line_number_(v8::Function::kLineOffsetNotFound), |
| 9295 column_number_(v8::Function::kLineOffsetNotFound) {} |
9294 | 9296 |
9295 int debug::Location::GetLineNumber() const { | 9297 int debug::Location::GetLineNumber() const { |
9296 CHECK(line_number_ >= 0); | 9298 CHECK(line_number_ >= 0); |
9297 return line_number_; | 9299 return line_number_; |
9298 } | 9300 } |
9299 | 9301 |
9300 int debug::Location::GetColumnNumber() const { | 9302 int debug::Location::GetColumnNumber() const { |
9301 CHECK(column_number_ >= 0); | 9303 CHECK(column_number_ >= 0); |
9302 return column_number_; | 9304 return column_number_; |
9303 } | 9305 } |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9407 if (object->IsJSSetIterator()) { | 9409 if (object->IsJSSetIterator()) { |
9408 i::Handle<i::JSSetIterator> it = i::Handle<i::JSSetIterator>::cast(object); | 9410 i::Handle<i::JSSetIterator> it = i::Handle<i::JSSetIterator>::cast(object); |
9409 *is_key_value = false; | 9411 *is_key_value = false; |
9410 if (!it->HasMore()) return v8::Array::New(v8_isolate); | 9412 if (!it->HasMore()) return v8::Array::New(v8_isolate); |
9411 return Utils::ToLocal( | 9413 return Utils::ToLocal( |
9412 SetAsArray(isolate, it->table(), i::Smi::cast(it->index())->value())); | 9414 SetAsArray(isolate, it->table(), i::Smi::cast(it->index())->value())); |
9413 } | 9415 } |
9414 return v8::MaybeLocal<v8::Array>(); | 9416 return v8::MaybeLocal<v8::Array>(); |
9415 } | 9417 } |
9416 | 9418 |
| 9419 MaybeLocal<debug::Script> debug::GeneratorObject::Script() { |
| 9420 i::Handle<i::JSGeneratorObject> obj = Utils::OpenHandle(this); |
| 9421 i::Object* maybe_script = obj->function()->shared()->script(); |
| 9422 if (!maybe_script->IsScript()) return MaybeLocal<debug::Script>(); |
| 9423 i::Handle<i::Script> script(i::Script::cast(maybe_script), obj->GetIsolate()); |
| 9424 return ToApiHandle<debug::Script>(script); |
| 9425 } |
| 9426 |
| 9427 Local<Function> debug::GeneratorObject::Function() { |
| 9428 i::Handle<i::JSGeneratorObject> obj = Utils::OpenHandle(this); |
| 9429 return Utils::ToLocal(handle(obj->function())); |
| 9430 } |
| 9431 |
| 9432 debug::Location debug::GeneratorObject::SuspendedLocation() { |
| 9433 i::Handle<i::JSGeneratorObject> obj = Utils::OpenHandle(this); |
| 9434 CHECK(obj->is_suspended()); |
| 9435 i::Object* maybe_script = obj->function()->shared()->script(); |
| 9436 if (!maybe_script->IsScript()) return debug::Location(); |
| 9437 i::Handle<i::Script> script(i::Script::cast(maybe_script), obj->GetIsolate()); |
| 9438 i::Script::PositionInfo info; |
| 9439 i::Script::GetPositionInfo(script, obj->source_position(), &info, |
| 9440 i::Script::WITH_OFFSET); |
| 9441 return debug::Location(info.line, info.column); |
| 9442 } |
| 9443 |
| 9444 bool debug::GeneratorObject::IsSuspended() { |
| 9445 return Utils::OpenHandle(this)->is_suspended(); |
| 9446 } |
| 9447 |
| 9448 v8::Local<debug::GeneratorObject> debug::GeneratorObject::Cast( |
| 9449 v8::Local<v8::Value> value) { |
| 9450 CHECK(value->IsGeneratorObject()); |
| 9451 return ToApiHandle<debug::GeneratorObject>(Utils::OpenHandle(*value)); |
| 9452 } |
| 9453 |
9417 Local<String> CpuProfileNode::GetFunctionName() const { | 9454 Local<String> CpuProfileNode::GetFunctionName() const { |
9418 const i::ProfileNode* node = reinterpret_cast<const i::ProfileNode*>(this); | 9455 const i::ProfileNode* node = reinterpret_cast<const i::ProfileNode*>(this); |
9419 i::Isolate* isolate = node->isolate(); | 9456 i::Isolate* isolate = node->isolate(); |
9420 const i::CodeEntry* entry = node->entry(); | 9457 const i::CodeEntry* entry = node->entry(); |
9421 i::Handle<i::String> name = | 9458 i::Handle<i::String> name = |
9422 isolate->factory()->InternalizeUtf8String(entry->name()); | 9459 isolate->factory()->InternalizeUtf8String(entry->name()); |
9423 if (!entry->has_name_prefix()) { | 9460 if (!entry->has_name_prefix()) { |
9424 return ToApiHandle<String>(name); | 9461 return ToApiHandle<String>(name); |
9425 } else { | 9462 } else { |
9426 // We do not expect this to fail. Change this if it does. | 9463 // We do not expect this to fail. Change this if it does. |
(...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10099 Address callback_address = | 10136 Address callback_address = |
10100 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); | 10137 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); |
10101 VMState<EXTERNAL> state(isolate); | 10138 VMState<EXTERNAL> state(isolate); |
10102 ExternalCallbackScope call_scope(isolate, callback_address); | 10139 ExternalCallbackScope call_scope(isolate, callback_address); |
10103 callback(info); | 10140 callback(info); |
10104 } | 10141 } |
10105 | 10142 |
10106 | 10143 |
10107 } // namespace internal | 10144 } // namespace internal |
10108 } // namespace v8 | 10145 } // namespace v8 |
OLD | NEW |