• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

KarpelesLab / goro / 26390158551

25 May 2026 08:01AM UTC coverage: 12.486% (+0.007%) from 12.479%
26390158551

push

github

MagicalTux
vm: lower $obj->prop ?? default natively via OP_OBJECT_GET_SAFE

Currently $obj->prop ?? default routes through OpClassConst (generic
AST.Run delegation) because the AST's coalesce handler suppresses the
"Undefined property" warning that OP_OBJECT_GET would emit.

Add OP_OBJECT_GET_SAFE that calls ZObject.ObjectGetQuiet (already
exists) for ZtObject receivers — same dispatch as OP_OBJECT_GET but
silences the missing-property warning. Non-object receivers fall
through to the loud objectGet path; the coalesce LHS swallows any
resulting warning at the AST evaluation level, matching baseline.

emit_expr.go: emitCoalesce detects objectVarNode LHS with literal
(non-dollar-prefixed) name and emits OP_OBJECT_GET_SAFE instead of
OP_OBJECT_GET. Dollar-prefix form ($obj->$x) falls through to AST.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

21 of 56 new or added lines in 3 files covered. (37.5%)

5 existing lines in 3 files now uncovered.

14775 of 118331 relevant lines covered (12.49%)

2583.56 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

22.12
/core/phpobj/zobject.go


Source Not Available

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc