Skip to content

Commit 02bcb68

Browse files
authored
chore: fix compilation error of valueToString in debugger.go (#754)
1 parent dec1aa2 commit 02bcb68

File tree

1 file changed

+7
-59
lines changed

1 file changed

+7
-59
lines changed

Diff for: debugger.go

+7-59
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,10 @@ func (d *Debugger) preHook(i *interpreter, n ast.Node) {
180180
if l.File == nil {
181181
return
182182
}
183-
vs := valueToString(d.lastEvaluation)
183+
vs, err := valueToString(d.interpreter, d.lastEvaluation)
184+
if err != nil {
185+
return
186+
}
184187
if d.singleStep {
185188
d.singleStep = false
186189
d.events <- &DebugEventStop{
@@ -208,61 +211,6 @@ func (d *Debugger) preHook(i *interpreter, n ast.Node) {
208211
return
209212
}
210213

211-
func valueToString(v value) string {
212-
switch i := v.(type) {
213-
case *valueFlatString:
214-
return "\"" + i.getGoString() + "\""
215-
case *valueObject:
216-
if i == nil {
217-
return "{}"
218-
}
219-
var sb strings.Builder
220-
sb.WriteString("{")
221-
firstLine := true
222-
for k, v := range i.cache {
223-
if k.depth != 0 {
224-
continue
225-
}
226-
if !firstLine {
227-
sb.WriteString(", ")
228-
firstLine = true
229-
}
230-
sb.WriteString(k.field)
231-
sb.WriteString(": ")
232-
sb.WriteString(valueToString(v))
233-
}
234-
sb.WriteString("}")
235-
return sb.String()
236-
case *valueArray:
237-
var sb strings.Builder
238-
sb.WriteString("[")
239-
for i, e := range i.elements {
240-
if i > 0 {
241-
sb.WriteString(", ")
242-
}
243-
sb.WriteString(valueToString(e.content))
244-
}
245-
sb.WriteString("]")
246-
return sb.String()
247-
case *valueNumber:
248-
return fmt.Sprintf("%f", i.value)
249-
case *valueBoolean:
250-
return fmt.Sprintf("%t", i.value)
251-
case *valueFunction:
252-
var sb strings.Builder
253-
sb.WriteString("function(")
254-
for i, p := range i.parameters() {
255-
if i > 0 {
256-
sb.WriteString(", ")
257-
}
258-
sb.WriteString(string(p.name))
259-
}
260-
sb.WriteString(")")
261-
return sb.String()
262-
}
263-
return fmt.Sprintf("%T%+v", v, v)
264-
}
265-
266214
func (d *Debugger) ActiveBreakpoints() []string {
267215
bps := []string{}
268216
for k := range d.breakpoints {
@@ -334,9 +282,9 @@ func (d *Debugger) ClearBreakpoints(file string) {
334282
func (d *Debugger) LookupValue(val string) (string, error) {
335283
switch val {
336284
case "self":
337-
return valueToString(d.interpreter.stack.getSelfBinding().self), nil
285+
return valueToString(d.interpreter, d.interpreter.stack.getSelfBinding().self)
338286
case "super":
339-
return valueToString(d.interpreter.stack.getSelfBinding().super().self), nil
287+
return valueToString(d.interpreter, d.interpreter.stack.getSelfBinding().super().self)
340288
default:
341289
v := d.interpreter.stack.lookUpVar(ast.Identifier(val))
342290
if v != nil {
@@ -357,7 +305,7 @@ func (d *Debugger) LookupValue(val string) (string, error) {
357305
}
358306
v.content = e
359307
}
360-
return valueToString(v.content), nil
308+
return valueToString(d.interpreter, v.content)
361309
}
362310
}
363311
return "", fmt.Errorf("invalid identifier %s", val)

0 commit comments

Comments
 (0)