js/src/jit-test/tests/basic/bug642206.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/jit-test/tests/basic/bug642206.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,30 @@
     1.4 +this.__proto__ = null;
     1.5 +
     1.6 +function testLenientAndStrict(code, lenient_pred, strict_pred) {
     1.7 +  return (strict_pred("'use strict'; " + code) && 
     1.8 +          lenient_pred(code));
     1.9 +}
    1.10 +function raisesException(exception) {
    1.11 +  return function (code) {
    1.12 +    try {
    1.13 +      eval(code);
    1.14 +    } catch (actual) {
    1.15 +    }
    1.16 +  };
    1.17 +};
    1.18 +try {
    1.19 +function arr() {
    1.20 +  return Object.defineProperty(Object()* delete Object, 0, {writable: false});
    1.21 +}
    1.22 +assertEq(testLenientAndStrict('var a = arr(); [a.splice(0, 1), a]',
    1.23 +                              raisesException(TypeError),
    1.24 +                              raisesException(TypeError)),
    1.25 +         true);
    1.26 +} catch (e) {}
    1.27 +ForIn_2(this);
    1.28 +function ForIn_2(object) {
    1.29 +  for ( property in object ) {
    1.30 +    with ( object ) {
    1.31 +    }
    1.32 +  }
    1.33 +}

mercurial