[vm/bytecode] Fix last source position in a function

Change-Id: Id3b9c6476cc3745a39a7010b7ae09d2422467e31
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107182
Reviewed-by: RĂ©gis Crelier <regis@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
diff --git a/pkg/vm/lib/bytecode/gen_bytecode.dart b/pkg/vm/lib/bytecode/gen_bytecode.dart
index 894471a..db0c918 100644
--- a/pkg/vm/lib/bytecode/gen_bytecode.dart
+++ b/pkg/vm/lib/bytecode/gen_bytecode.dart
@@ -700,6 +700,9 @@
             // BytecodeAssembler eliminates this bytecode if it is unreachable.
             asm.emitPushNull();
           }
+          if (node.function != null) {
+            _recordSourcePosition(node.function.fileEndOffset);
+          }
           _genReturnTOS();
         }
       } else {
@@ -1931,9 +1934,9 @@
     _generateNode(function.body);
 
     // BytecodeAssembler eliminates this bytecode if it is unreachable.
+    _recordSourcePosition(function.fileEndOffset);
     asm.emitPushNull();
     _genReturnTOS();
-    _recordSourcePosition(function.fileEndOffset);
 
     if (locals.isSyncYieldingFrame) {
       _genSyncYieldingEpilogue(