// Copyright 2009 the Sputnik authors.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
info: Operator x - y returns ToNumber(x) - ToNumber(y)
es5id: 11.6.2_A3_T2.5
description: >
    Type(x) is different from Type(y) and both types vary between
    String (primitive or object) and Boolean (primitive and object)
---*/

//CHECK#1
if (true - "1" !== 0) {
  $ERROR('#1: true - "1" === 0. Actual: ' + (true - "1"));
}

//CHECK#2
if ("1" - true !== 0) {
  $ERROR('#2: "1" - true === 0. Actual: ' + ("1" - true));
}

//CHECK#3
if (new Boolean(true) - "1" !== 0) {
  $ERROR('#3: new Boolean(true) - "1" === 0. Actual: ' + (new Boolean(true) - "1"));
}

//CHECK#4
if ("1" - new Boolean(true) !== 0) {
  $ERROR('#4: "1" - new Boolean(true) === 0. Actual: ' + ("1" - new Boolean(true)));
}

//CHECK#5
if (true - new String("1") !== 0) {
  $ERROR('#5: true - new String("1") === 0. Actual: ' + (true - new String("1")));
}

//CHECK#6
if (new String("1") - true !== 0) {
  $ERROR('#6: new String("1") - true === 0. Actual: ' + (new String("1") - true));
}

//CHECK#7
if (new Boolean(true) - new String("1") !== 0) {
  $ERROR('#7: new Boolean(true) - new String("1") === 0. Actual: ' + (new Boolean(true) - new String("1")));
}

//CHECK#8
if (new String("1") - new Boolean(true) !== 0) {
  $ERROR('#8: new String("1") - new Boolean(true) === 0. Actual: ' + (new String("1") - new Boolean(true)));
}
