diff -r 000000000000 -r 6474c204b198 js/src/tests/test262/ch11/11.1/11.1.1/S11.1.1_A4.2.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/js/src/tests/test262/ch11/11.1/11.1.1/S11.1.1_A4.2.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,25 @@ +// Copyright 2009 the Sputnik authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/** + * Being in anonymous code, "this" and eval("this"), called as a constructor, return the object + * + * @path ch11/11.1/11.1.1/S11.1.1_A4.2.js + * @description Creating function by using new Function() constructor. It has the property, which returns "this" + */ + +//CHECK#1 +var MyFunction = new Function("this.THIS = this"); +var MyObject = new MyFunction(); +if (MyObject.THIS.toString() !== "[object Object]") { + $ERROR('#1: var MyFunction = new Function("this.THIS = this"); var MyObject = new MyFunction(); MyObject.THIS.toString() === "[object Object]". Actual: ' + (MyObject.THIS.toString())); +} + +//CHECK#2 +MyFunction = new Function("this.THIS = eval(\'this\')"); +MyObject = new MyFunction(); +if (MyObject.THIS.toString() !== "[object Object]") { + $ERROR('#2: var MyFunction = new Function("this.THIS = eval(\'this\')"); var MyObject = new MyFunction(); MyObject.THIS.toString() === "[object Object]". Actual: ' + (MyObject.THIS.toString())); +} + +