34 lines
671 B
JavaScript
34 lines
671 B
JavaScript
description(
|
|
'Tests whether bytecode codegen properly handles assignment as righthand expression.'
|
|
);
|
|
|
|
|
|
function assign_as_rexp_1() {
|
|
var obj = {};
|
|
var victim = 'PASS';
|
|
obj.__defineSetter__('slot',
|
|
function(v) {
|
|
victim = 'FAIL';
|
|
});
|
|
var obj2 = {};
|
|
obj2.forward = (obj['slot'] = victim);
|
|
return obj2.forward;
|
|
};
|
|
|
|
shouldBe("assign_as_rexp_1()", "'PASS'");
|
|
|
|
|
|
function assign_as_rexp_2() {
|
|
var obj = {};
|
|
var victim = 'PASS';
|
|
obj.__defineSetter__('slot',
|
|
function(v) {
|
|
victim = 'FAIL';
|
|
});
|
|
var obj2 = {};
|
|
obj2.forward = (obj.slot = victim);
|
|
return obj2.forward;
|
|
};
|
|
|
|
shouldBe("assign_as_rexp_2()", "'PASS'");
|