Closed Bug 638775 Opened 13 years ago Closed 6 years ago

uint property lookup on missing property on sealed object does not throw exception if uint value has not been interned

Categories

(Tamarin Graveyard :: Virtual Machine, defect, P3)

defect

Tracking

(Not tracked)

RESOLVED WONTFIX
Q1 12 - Brannan

People

(Reporter: lhansen, Unassigned)

Details

Test cases, note the objects are all sealed:

This throws an error as it should:

  class A {}
  print((new A)["foo"]);

This does not throw an error (it prints undefined), though it should have:

  class A {}
  print((new A)[33]);

This throws an error on the first print line:

  class A {}
  print((new A)[32]);
  print((new A)["32"])

This throws an error on the second print line (after printing undefined), though it should have thrown it on the first:

  class A {}
  print((new A)[33]);
  print((new A)["32"])

In all cases the problem appears to be a case in ScriptObject::getUintProperty that checks for whether the integer value has been interned; if it is, getAtomProperty is called on the interned value, otherwise undefined is returned (on the assumption the property is not there).  But if the object is sealed an exception should have been thrown at that point.
Flags: flashplayer-needsversioning+
Jeff notes that interpreter and jit behavior are the same.
Flags: flashplayer-qrb+
Flags: flashplayer-injection-
Flags: flashplayer-bug-
Target Milestone: Q3 11 - Serrano → Q1 12 - Brannan
Tamarin is a dead project now. Mass WONTFIX.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
Tamarin isn't maintained anymore. WONTFIX remaining bugs.
You need to log in before you can comment on or make changes to this bug.