about summary refs log tree commit diff
path: root/pkg/lang/vm/code/builder.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/lang/vm/code/builder.go')
-rw-r--r--pkg/lang/vm/code/builder.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/pkg/lang/vm/code/builder.go b/pkg/lang/vm/code/builder.go
index f413ba1..618608a 100644
--- a/pkg/lang/vm/code/builder.go
+++ b/pkg/lang/vm/code/builder.go
@@ -2,6 +2,7 @@ package code
 
 import (
 	"encoding/binary"
+	"jinx/pkg/libs/source"
 	"math"
 )
 
@@ -76,6 +77,7 @@ func (b *Builder) AppendBuilder(other Builder) error {
 	}
 
 	b.AppendRaw(other.code)
+	b.debugInfo.AppendOther(other.debugInfo)
 
 	return nil
 }
@@ -114,6 +116,10 @@ func (b *Builder) EndLine() {
 	b.debugInfo.AppendLine(b.Len()-1, b.currentLine)
 }
 
+func (b *Builder) AddDebugInfo(fromPc, toPc int, loc source.Loc) {
+	b.debugInfo.FillInfo(fromPc, toPc, loc)
+}
+
 func (b *Builder) SetInt(at int, x int64) {
 	binary.LittleEndian.PutUint64(b.code[at:], uint64(x))
 }