Repro
tmp=$(mktemp -d /tmp/goboscript-reporters.XXXXXX)
printf 'costumes "blank.svg";\n' > "$tmp/stage.gs"
printf 'costumes "blank.svg";\nonflag { say distance_to("missing"); say touching("missing"); }\n' > "$tmp/main.gs"
touch "$tmp/blank.svg"
cargo run --quiet -- build "$tmp"
python3 - <<'PY' "$tmp/$(basename "$tmp").sb3"
import json, sys, zipfile
with zipfile.ZipFile(sys.argv[1]) as z:
project = json.loads(z.read('project.json'))
for target in project['targets']:
if not target['isStage']:
for block in target['blocks'].values():
print(block)
PY
Actual
Build exits 0 and emits reporter menu fields for a sprite/object that does not exist:
{'opcode': 'sensing_distancetomenu', ..., 'fields': {'DISTANCETOMENU': ['missing', None]}}
{'opcode': 'sensing_touchingobjectmenu', ..., 'fields': {'TOUCHINGOBJECTMENU': ['missing', None]}}
Expected
Literal object arguments for distance_to() and touching() should be validated against known sprites and valid Scratch sentinel values like _mouse_ or _edge_ where applicable.
Repro
Actual
Build exits 0 and emits reporter menu fields for a sprite/object that does not exist:
Expected
Literal object arguments for
distance_to()andtouching()should be validated against known sprites and valid Scratch sentinel values like_mouse_or_edge_where applicable.