@@ -514,6 +514,26 @@ int JSStackFrame::GetColumnNumber(){
514514return kNone ;
515515}
516516
517+ int JSStackFrame::GetEnclosingLineNumber (){
518+ if (HasScript ()){
519+ Handle<SharedFunctionInfo> shared = handle (function_->shared (), isolate_);
520+ return Script::GetLineNumber (GetScript (),
521+ shared->function_token_position ()) + 1 ;
522+ } else {
523+ return kNone ;
524+ }
525+ }
526+
527+ int JSStackFrame::GetEnclosingColumnNumber (){
528+ if (HasScript ()){
529+ Handle<SharedFunctionInfo> shared = handle (function_->shared (), isolate_);
530+ return Script::GetColumnNumber (GetScript (),
531+ shared->function_token_position ()) + 1 ;
532+ } else {
533+ return kNone ;
534+ }
535+ }
536+
517537int JSStackFrame::GetPromiseIndex () const {
518538return (is_promise_all_ || is_promise_any_) ? offset_ : kNone ;
519539}
@@ -602,6 +622,12 @@ int WasmStackFrame::GetPosition() const{
602622
603623int WasmStackFrame::GetColumnNumber (){return GetModuleOffset ()}
604624
625+ int WasmStackFrame::GetEnclosingColumnNumber (){
626+ const int function_offset =
627+ GetWasmFunctionOffset (wasm_instance_->module (), wasm_func_index_);
628+ return function_offset;
629+ }
630+
605631int WasmStackFrame::GetModuleOffset () const {
606632const int function_offset =
607633GetWasmFunctionOffset (wasm_instance_->module (), wasm_func_index_);
@@ -672,6 +698,26 @@ int AsmJsWasmStackFrame::GetColumnNumber(){
672698return Script::GetColumnNumber (script, GetPosition ()) + 1 ;
673699}
674700
701+ int AsmJsWasmStackFrame::GetEnclosingLineNumber (){
702+ DCHECK_LE (0 , GetPosition ());
703+ Handle<Script> script (wasm_instance_->module_object ().script (), isolate_);
704+ DCHECK (script->IsUserJavaScript ());
705+ int byte_offset = GetSourcePosition (wasm_instance_->module (),
706+ wasm_func_index_, 0 ,
707+ is_at_number_conversion_);
708+ return Script::GetLineNumber (script, byte_offset) + 1 ;
709+ }
710+
711+ int AsmJsWasmStackFrame::GetEnclosingColumnNumber (){
712+ DCHECK_LE (0 , GetPosition ());
713+ Handle<Script> script (wasm_instance_->module_object ().script (), isolate_);
714+ DCHECK (script->IsUserJavaScript ());
715+ int byte_offset = GetSourcePosition (wasm_instance_->module (),
716+ wasm_func_index_, 0 ,
717+ is_at_number_conversion_);
718+ return Script::GetColumnNumber (script, byte_offset) + 1 ;
719+ }
720+
675721FrameArrayIterator::FrameArrayIterator (Isolate* isolate,
676722 Handle<FrameArray> array, int frame_ix)
677723 : isolate_(isolate), array_(array), frame_ix_(frame_ix){}
0 commit comments