michael@0: this.__proto__ = null; michael@0: michael@0: function testLenientAndStrict(code, lenient_pred, strict_pred) { michael@0: return (strict_pred("'use strict'; " + code) && michael@0: lenient_pred(code)); michael@0: } michael@0: function raisesException(exception) { michael@0: return function (code) { michael@0: try { michael@0: eval(code); michael@0: } catch (actual) { michael@0: } michael@0: }; michael@0: }; michael@0: try { michael@0: function arr() { michael@0: return Object.defineProperty(Object()* delete Object, 0, {writable: false}); michael@0: } michael@0: assertEq(testLenientAndStrict('var a = arr(); [a.splice(0, 1), a]', michael@0: raisesException(TypeError), michael@0: raisesException(TypeError)), michael@0: true); michael@0: } catch (e) {} michael@0: ForIn_2(this); michael@0: function ForIn_2(object) { michael@0: for ( property in object ) { michael@0: with ( object ) { michael@0: } michael@0: } michael@0: }