Closed Bug 624377 Opened 14 years ago Closed 13 years ago

TM: Different output (interpreter vs TM) with given testcase involving Object.isFrozen.call

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME
Tracking Status
blocking2.0 --- .x+

People

(Reporter: gkw, Unassigned)

Details

(Keywords: testcase)

try {
    x = function() {}
} catch(e) {}
for each(y in [0, 0, 0, 0, 0, 0, 0, 0, 0]) {
    try {
        (function() {
            Object.isFrozen.call(x, "")
        })()
    } catch(e) {
        print(e)
    }
}

without -j, outputs:

TypeError: "" is not an object
TypeError: "" is not an object
TypeError: "" is not an object
TypeError: "" is not an object
TypeError: "" is not an object
TypeError: "" is not an object
TypeError: "" is not an object
TypeError: "" is not an object
TypeError: "" is not an object

with -j, outputs:

TypeError: "" is not an object
TypeError: "" is not an object
TypeError: "" is not an object
TypeError: "" is not an object
TypeError: "" is not an object
TypeError: "" is not an object
TypeError: "" is not an object
TypeError: "" is not an object
TypeError: x is not an object
Another one that does not seem to be as complex:

function a(bb) {
    bb([bb].filter(Object.isExtensible))
}
for (w in [0]) {
    try {
        a()
    } catch(e) {
        print(e)
    }
}

Output without -m:

TypeError: bb is not an object

Output with -m:

TypeError: (void 0) is not an object
blocking2.0: --- → ?
blocking2.0: ? → .x
The testcases in comment #0 and comment #1 both give me the same results with the interpreter, -j, -m, and -m -n.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.