Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Side by Side Diff: src/runtime/runtime-debug.cc

Issue 2551053002: [wasm] Always provide a wasm instance object at runtime (Closed)
Patch Set: Rebase Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/messages.cc ('k') | src/vector.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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/runtime/runtime-utils.h" 5 #include "src/runtime/runtime-utils.h"
6 6
7 #include "src/arguments.h" 7 #include "src/arguments.h"
8 #include "src/debug/debug-evaluate.h" 8 #include "src/debug/debug-evaluate.h"
9 #include "src/debug/debug-frames.h" 9 #include "src/debug/debug-frames.h"
10 #include "src/debug/debug-scopes.h" 10 #include "src/debug/debug-scopes.h"
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 519
520 if (it.is_wasm()) { 520 if (it.is_wasm()) {
521 // Create the details array (no dynamic information for wasm). 521 // Create the details array (no dynamic information for wasm).
522 Handle<FixedArray> details = 522 Handle<FixedArray> details =
523 isolate->factory()->NewFixedArray(kFrameDetailsFirstDynamicIndex); 523 isolate->factory()->NewFixedArray(kFrameDetailsFirstDynamicIndex);
524 524
525 // Add the frame id. 525 // Add the frame id.
526 details->set(kFrameDetailsFrameIdIndex, *frame_id); 526 details->set(kFrameDetailsFrameIdIndex, *frame_id);
527 527
528 // Add the function name. 528 // Add the function name.
529 Handle<Object> wasm_instance_or_undef(it.wasm_frame()->wasm_instance(), 529 Handle<WasmCompiledModule> compiled_module(
530 isolate); 530 it.wasm_frame()->wasm_instance()->get_compiled_module(), isolate);
531 int func_index = it.wasm_frame()->function_index(); 531 int func_index = it.wasm_frame()->function_index();
532 Handle<String> func_name = 532 Handle<String> func_name = WasmCompiledModule::GetFunctionName(
533 wasm::GetWasmFunctionName(isolate, wasm_instance_or_undef, func_index); 533 isolate, compiled_module, func_index);
534 details->set(kFrameDetailsFunctionIndex, *func_name); 534 details->set(kFrameDetailsFunctionIndex, *func_name);
535 535
536 // Add the script wrapper 536 // Add the script wrapper
537 Handle<Object> script_wrapper = 537 Handle<Object> script_wrapper =
538 Script::GetWrapper(frame_inspector.GetScript()); 538 Script::GetWrapper(frame_inspector.GetScript());
539 details->set(kFrameDetailsScriptIndex, *script_wrapper); 539 details->set(kFrameDetailsScriptIndex, *script_wrapper);
540 540
541 // Add the arguments count. 541 // Add the arguments count.
542 details->set(kFrameDetailsArgumentCountIndex, Smi::kZero); 542 details->set(kFrameDetailsArgumentCountIndex, Smi::kZero);
543 543
544 // Add the locals count 544 // Add the locals count
545 details->set(kFrameDetailsLocalCountIndex, Smi::kZero); 545 details->set(kFrameDetailsLocalCountIndex, Smi::kZero);
546 546
547 // Add the source position. 547 // Add the source position.
548 // For wasm, it is function-local, so translate it to a module-relative 548 // For wasm, it is function-local, so translate it to a module-relative
549 // position, such that together with the script it uniquely identifies the 549 // position, such that together with the script it uniquely identifies the
550 // position. 550 // position.
551 Handle<Object> positionValue; 551 Handle<Object> positionValue;
552 if (position != kNoSourcePosition && 552 if (position != kNoSourcePosition) {
553 !wasm_instance_or_undef->IsUndefined(isolate)) {
554 int translated_position = position; 553 int translated_position = position;
555 if (!wasm::WasmIsAsmJs(*wasm_instance_or_undef, isolate)) { 554 // No further translation needed for asm.js modules.
556 Handle<WasmCompiledModule> compiled_module( 555 if (!compiled_module->is_asm_js()) {
557 WasmInstanceObject::cast(*wasm_instance_or_undef)
558 ->get_compiled_module(),
559 isolate);
560 translated_position += 556 translated_position +=
561 wasm::GetFunctionCodeOffset(compiled_module, func_index); 557 wasm::GetFunctionCodeOffset(compiled_module, func_index);
562 } 558 }
563 details->set(kFrameDetailsSourcePositionIndex, 559 details->set(kFrameDetailsSourcePositionIndex,
564 Smi::FromInt(translated_position)); 560 Smi::FromInt(translated_position));
565 } 561 }
566 562
567 // Add the constructor information. 563 // Add the constructor information.
568 details->set(kFrameDetailsConstructCallIndex, heap->ToBoolean(false)); 564 details->set(kFrameDetailsConstructCallIndex, heap->ToBoolean(false));
569 565
(...skipping 1353 matching lines...) Expand 10 before | Expand all | Expand 10 after
1923 } 1919 }
1924 1920
1925 1921
1926 RUNTIME_FUNCTION(Runtime_DebugBreakInOptimizedCode) { 1922 RUNTIME_FUNCTION(Runtime_DebugBreakInOptimizedCode) {
1927 UNIMPLEMENTED(); 1923 UNIMPLEMENTED();
1928 return NULL; 1924 return NULL;
1929 } 1925 }
1930 1926
1931 } // namespace internal 1927 } // namespace internal
1932 } // namespace v8 1928 } // namespace v8
OLDNEW
« no previous file with comments | « src/messages.cc ('k') | src/vector.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698