1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ 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 1.3 @@ -0,0 +1,25 @@ 1.4 +// Copyright 2009 the Sputnik authors. All rights reserved. 1.5 +// This code is governed by the BSD license found in the LICENSE file. 1.6 + 1.7 +/** 1.8 + * Being in anonymous code, "this" and eval("this"), called as a constructor, return the object 1.9 + * 1.10 + * @path ch11/11.1/11.1.1/S11.1.1_A4.2.js 1.11 + * @description Creating function by using new Function() constructor. It has the property, which returns "this" 1.12 + */ 1.13 + 1.14 +//CHECK#1 1.15 +var MyFunction = new Function("this.THIS = this"); 1.16 +var MyObject = new MyFunction(); 1.17 +if (MyObject.THIS.toString() !== "[object Object]") { 1.18 + $ERROR('#1: var MyFunction = new Function("this.THIS = this"); var MyObject = new MyFunction(); MyObject.THIS.toString() === "[object Object]". Actual: ' + (MyObject.THIS.toString())); 1.19 +} 1.20 + 1.21 +//CHECK#2 1.22 +MyFunction = new Function("this.THIS = eval(\'this\')"); 1.23 +MyObject = new MyFunction(); 1.24 +if (MyObject.THIS.toString() !== "[object Object]") { 1.25 + $ERROR('#2: var MyFunction = new Function("this.THIS = eval(\'this\')"); var MyObject = new MyFunction(); MyObject.THIS.toString() === "[object Object]". Actual: ' + (MyObject.THIS.toString())); 1.26 +} 1.27 + 1.28 +