1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/tests/test262/ch13/13.2/S13.2.2_A2.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,42 @@ 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 + * Since a function is an object, it might be set to [[Prototype]] property of a new created object through [[Construct]] property, 1.9 + * but [[call]] property must fail with TypeError error 1.10 + * 1.11 + * @path ch13/13.2/S13.2.2_A2.js 1.12 + * @description Trying to [[call]] this function 1.13 + */ 1.14 + 1.15 +var __PLANT="flower"; 1.16 +var __ROSE="rose"; 1.17 + 1.18 +function __PROTO(){}; 1.19 + 1.20 +try{ 1.21 + __PROTO.type=__PLANT; 1.22 +} 1.23 +catch(e){ 1.24 + $ERROR('#0: __PROTO.type=__PLANT does not lead to throwing exception') 1.25 +} 1.26 + 1.27 +function __FACTORY(){this.name=__ROSE}; 1.28 + 1.29 +__FACTORY.prototype=__PROTO; 1.30 + 1.31 +var __rose = new __FACTORY(); 1.32 + 1.33 +////////////////////////////////////////////////////////////////////////////// 1.34 +//CHECK#1 1.35 +try{ 1.36 + __rose(); 1.37 + $ERROR('#1: __rose() lead to throwing exception'); 1.38 +} catch(e){ 1.39 + if (!(e instanceof TypeError)) { 1.40 + $ERROR('#2: Exception Type is TypeError. Actual: exception ==='+e); 1.41 + } 1.42 +} 1.43 +// 1.44 +////////////////////////////////////////////////////////////////////////////// 1.45 +