Closed Bug 696070 Opened 14 years ago Closed 14 years ago

Jitted float4 component access via numeric index causes a ReferenceError

Categories

(Tamarin Graveyard :: Baseline JIT (CodegenLIR), defect)

defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: brbaker, Assigned: lhansen)

References

Details

Accessing a float4 component via a numeric index will produce a ReferenceError if the code is jitted, interpreter works fine for this code. var flt4:float4 = new float4(1f, 2f, 3f, 4f); print(flt4[0]); // ReferenceError print(flt4['0']); // this is ok
Flags: in-testsuite+
Flags: flashplayer-triage+
Flags: flashplayer-qrb+
Flags: flashplayer-bug-
Testmedia: as3/Types/Float4/flt4_4_6_3.as
Looks like missing code in getpropertylate_i as of now. Of course, if v is known to be float4 then v[0] should be as efficient as v.x, so there's additional work to be done around that. (I'll put that on the worklist.)
Assignee: virgilp → lhansen
Also getpropertylate_u/d, and also haspropertylate_i/u, Toplevel::in_operator, Toplevel::hasproperty. This pattern is used throughout (but not consistently) and cleverly obscures what's going on without comments about why it is what it is (namely, it assumes primitive values have no dynamic properties and that we can start searching in the prototype): const ScriptObject* curObj = AvmCore::isObject(obj) ? AvmCore::atomToScriptObject(obj) : toPrototype(obj);
Testmedia renamed to as3/Types/Float4/component_access_numeric_index.as
Also constructprop in instr.cpp. Also call_prim_dynamic in instr-inlines.h.
Fixed, though some mop-up work moves to bug #695055.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Fixed in changesets: 6911:c2158029f98e 6913:20bec0946709
Status: RESOLVED → VERIFIED
changeset: 6978:18119d533fa9 user: Brent Baker <brbaker@adobe.com> summary: Update expected failures for bugs 696070 and 703259 http://hg.mozilla.org/tamarin-redux/rev/18119d533fa9
You need to log in before you can comment on or make changes to this bug.