michael@0: // Copyright 2009 the Sputnik authors. All rights reserved. michael@0: // This code is governed by the BSD license found in the LICENSE file. michael@0: michael@0: /** michael@0: * Operator --x uses GetValue and PutValue michael@0: * michael@0: * @path ch11/11.4/11.4.5/S11.4.5_A2.1_T1.js michael@0: * @description Type(x) is Reference and GetBase(x) is not null michael@0: */ michael@0: michael@0: //CHECK#1 michael@0: var x = 1; michael@0: if (--x !== 1 - 1) { michael@0: $ERROR('#1: var x = 1; --x === 1 - 1. Actual: ' + (--x)); michael@0: } else { michael@0: if (x !== 1 - 1) { michael@0: $ERROR('#1: var x = 1; --x; x === 1 - 1. Actual: ' + (x)); michael@0: } michael@0: } michael@0: michael@0: //CHECK#2 michael@0: this.x = 1; michael@0: if (--this.x !== 1 - 1) { michael@0: $ERROR('#2: this.x = 1; --this.x === 1 - 1. Actual: ' + (--this.x)); michael@0: } else { michael@0: if (this.x !== 1 - 1) { michael@0: $ERROR('#2: this.x = 1; --this.x; this.x === 1 - 1. Actual: ' + (this.x)); michael@0: } michael@0: } michael@0: michael@0: //CHECK#3 michael@0: var object = new Object(); michael@0: object.prop = 1; michael@0: if (--object.prop !== 1 - 1) { michael@0: $ERROR('#3: var object = new Object(); object.prop = 1; --object.prop === 1 - 1. Actual: ' + (--object.prop)); michael@0: } else { michael@0: if (this.x !== 1 - 1) { michael@0: $ERROR('#3: var object = new Object(); object.prop = 1; --object.prop; object.prop === 1 - 1. Actual: ' + (object.prop)); michael@0: } michael@0: } michael@0: