S13.2.2_A8_T1.js (1889B)
1 // Copyright 2009 the Sputnik authors. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 info: | 6 When the [[Construct]] property for a Function object F is called: 7 A new native ECMAScript object is created. 8 Invoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument 9 list passed into [[Construct]] as the argument values. 10 If Type( [[Call]] returned) is an Function then return this just as obtained function 11 es5id: 13.2.2_A8_T1 12 description: > 13 Creating a function whose prototype contains "return" followed by 14 declaration of another function 15 ---*/ 16 17 var __FRST="one"; 18 var __SCND="two"; 19 20 var __func = function(arg1, arg2){ 21 this.first=arg1; 22 23 __gunc.prop=arg2; 24 return __gunc; 25 // function declaration 26 function __gunc(arg){return ++arg}; 27 28 }; 29 30 var __instance = new __func(__FRST, __SCND); 31 32 ////////////////////////////////////////////////////////////////////////////// 33 //CHECK#1 34 if (__instance.first !== undefined) { 35 throw new Test262Error('#1: __instance.first === undefined. Actual: __instance.first ==='+__instance.first); 36 } 37 // 38 ////////////////////////////////////////////////////////////////////////////// 39 40 ////////////////////////////////////////////////////////////////////////////// 41 //CHECK#2 42 if (__instance.prop!==__SCND) { 43 throw new Test262Error('#2: __instance.prop === __SCND. Actual: __instance.prop ==='+__instance.prop); 44 } 45 // 46 ////////////////////////////////////////////////////////////////////////////// 47 48 ////////////////////////////////////////////////////////////////////////////// 49 //CHECK#3 50 if (__instance(1)!== 2) { 51 throw new Test262Error('#2: __instance(1)=== 2. Actual: __instance(1) ==='+__instance(1)); 52 } 53 // 54 ////////////////////////////////////////////////////////////////////////////// 55 56 reportCompare(0, 0);