Closed Bug 693249 Opened 13 years ago Closed 6 years ago

Many ABC instructions are significantly underspecified

Categories

(Tamarin Graveyard :: Documentation, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: lhansen, Unassigned)

References

Details

From a mail message:

Many of the instructions in the ABC spec are underspecified.  The spec variously points to the ES and E4X specs, but those specs do not adequately describe AS3 behavior - for one, AS3 does not distinguish primitive values and the objects wrapping them; for another, our Namespace values are primitive values, unlike E4X namespaces I believe, and are therefore present as new cases in ToString, ToNumber, ToPrimitive, and so on (ToPrimitive is an indentity function on Namespaces).  There are probably more issues than that, for example, type compatibility and type coercions are new kinds of algorithms along the lines of ToString, ToNumber, ...  Consider the meaning of assignment to a slot in an object: there's a type check and type coercion that is part of that store, that needs to be represented in some relatively formal manner.

Basically, then, the ToNumber, ToString, ToPrimitive, etc algorithms, including any new ones, need to make an appearance in the ABC spec, and the algorithms for each of the individual instructions need to be present in the instruction definitions and need to make use of those primitive algorithms.  For an example of what that might look like, look in specs/speclets/abc-extensions-for-float.{docx,pdf} in the asteam hg repo (incomplete as of 10 October, 2011, but soon to be complete).

That update of the docs will become much more important once the float/float4 work starts landing, since there will be more primitive data types for sure and new algorithms not described elsewhere to support float/float4, and that work will probably force the issue in the bytecode docs.  So it may be OK to wait with an ABC spec update until we start merging in the float/float4 work.
Flags: flashplayer-qrb?
Flags: flashplayer-injection-
Flags: flashplayer-bug-
Depends on: 693632
Depends on: 693634
Tamarin isn't maintained anymore. WONTFIX remaining bugs.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.