OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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/messages.h" | 5 #include "src/messages.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "src/api.h" | 9 #include "src/api.h" |
10 #include "src/execution.h" | 10 #include "src/execution.h" |
(...skipping 662 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
673 } | 673 } |
674 | 674 |
675 int WasmStackFrame::GetPosition() const { | 675 int WasmStackFrame::GetPosition() const { |
676 return (offset_ < 0) ? (-1 - offset_) : code_->SourcePosition(offset_); | 676 return (offset_ < 0) ? (-1 - offset_) : code_->SourcePosition(offset_); |
677 } | 677 } |
678 | 678 |
679 Handle<Object> WasmStackFrame::Null() const { | 679 Handle<Object> WasmStackFrame::Null() const { |
680 return isolate_->factory()->null_value(); | 680 return isolate_->factory()->null_value(); |
681 } | 681 } |
682 | 682 |
683 void AsmJsWasmStackFrame::FromFrameArray(Isolate* isolate, | |
684 Handle<FrameArray> array, | |
685 int frame_ix) { | |
686 DCHECK(array->IsAsmJsWasmFrame(frame_ix)); | |
687 WasmStackFrame::FromFrameArray(isolate, array, frame_ix); | |
688 is_at_number_conversion_ = | |
689 array->Flags(frame_ix)->value() & FrameArray::kAsmJsAtNumberConversion; | |
690 } | |
691 | |
692 Handle<Object> AsmJsWasmStackFrame::GetReceiver() const { | 683 Handle<Object> AsmJsWasmStackFrame::GetReceiver() const { |
693 return isolate_->global_proxy(); | 684 return isolate_->global_proxy(); |
694 } | 685 } |
695 | 686 |
696 Handle<Object> AsmJsWasmStackFrame::GetFunction() const { | 687 Handle<Object> AsmJsWasmStackFrame::GetFunction() const { |
697 // TODO(clemensh): Return lazily created JSFunction. | 688 // TODO(clemensh): Return lazily created JSFunction. |
698 return Null(); | 689 return Null(); |
699 } | 690 } |
700 | 691 |
701 Handle<Object> AsmJsWasmStackFrame::GetFileName() { | 692 Handle<Object> AsmJsWasmStackFrame::GetFileName() { |
(...skipping 11 matching lines...) Expand all Loading... |
713 } | 704 } |
714 | 705 |
715 int AsmJsWasmStackFrame::GetPosition() const { | 706 int AsmJsWasmStackFrame::GetPosition() const { |
716 DCHECK_LE(0, offset_); | 707 DCHECK_LE(0, offset_); |
717 int byte_offset = code_->SourcePosition(offset_); | 708 int byte_offset = code_->SourcePosition(offset_); |
718 Handle<WasmCompiledModule> compiled_module( | 709 Handle<WasmCompiledModule> compiled_module( |
719 WasmInstanceObject::cast(*wasm_instance_)->get_compiled_module(), | 710 WasmInstanceObject::cast(*wasm_instance_)->get_compiled_module(), |
720 isolate_); | 711 isolate_); |
721 DCHECK_LE(0, byte_offset); | 712 DCHECK_LE(0, byte_offset); |
722 return WasmCompiledModule::GetAsmJsSourcePosition( | 713 return WasmCompiledModule::GetAsmJsSourcePosition( |
723 compiled_module, wasm_func_index_, static_cast<uint32_t>(byte_offset), | 714 compiled_module, wasm_func_index_, static_cast<uint32_t>(byte_offset)); |
724 is_at_number_conversion_); | |
725 } | 715 } |
726 | 716 |
727 int AsmJsWasmStackFrame::GetLineNumber() { | 717 int AsmJsWasmStackFrame::GetLineNumber() { |
728 DCHECK_LE(0, GetPosition()); | 718 DCHECK_LE(0, GetPosition()); |
729 Handle<Script> script = | 719 Handle<Script> script = |
730 wasm::GetScript(Handle<JSObject>::cast(wasm_instance_)); | 720 wasm::GetScript(Handle<JSObject>::cast(wasm_instance_)); |
731 DCHECK_EQ(Script::TYPE_NORMAL, script->type()); | 721 DCHECK_EQ(Script::TYPE_NORMAL, script->type()); |
732 return Script::GetLineNumber(script, GetPosition()) + 1; | 722 return Script::GetLineNumber(script, GetPosition()) + 1; |
733 } | 723 } |
734 | 724 |
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1201 DCHECK(mode != SKIP_UNTIL_SEEN); | 1191 DCHECK(mode != SKIP_UNTIL_SEEN); |
1202 | 1192 |
1203 Handle<Object> no_caller; | 1193 Handle<Object> no_caller; |
1204 Handle<String> msg = FormatMessage(isolate, template_index, arg0, arg1, arg2); | 1194 Handle<String> msg = FormatMessage(isolate, template_index, arg0, arg1, arg2); |
1205 return ErrorUtils::Construct(isolate, constructor, constructor, msg, mode, | 1195 return ErrorUtils::Construct(isolate, constructor, constructor, msg, mode, |
1206 no_caller, false); | 1196 no_caller, false); |
1207 } | 1197 } |
1208 | 1198 |
1209 } // namespace internal | 1199 } // namespace internal |
1210 } // namespace v8 | 1200 } // namespace v8 |
OLD | NEW |