|
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 * When Function object(F) is constructed the following steps from 9 to 11 take place |
|
6 * 9.Create a new object as would be constructed by the expression new Object(). |
|
7 * 10. Set the constructor property of Result(9) to F. This property is given attributes { DontEnum }. |
|
8 * 11. Set the "prototype" property of F to Result(9). |
|
9 * |
|
10 * @path ch13/13.2/S13.2_A4_T1.js |
|
11 * @description Checking prototype, prototype.constructor properties and {DontEnum} property of a constructor. |
|
12 * Using "function __func(){}" as a FunctionDeclaration |
|
13 */ |
|
14 |
|
15 function __func(){}; |
|
16 |
|
17 ////////////////////////////////////////////////////////////////////////////// |
|
18 //CHECK#1 |
|
19 if (typeof __func.prototype !== 'object') { |
|
20 $ERROR('#1: typeof __func.prototype === \'object\'. Actual: typeof __gunc.prototype ==='+typeof __gunc.prototype); |
|
21 } |
|
22 // |
|
23 ////////////////////////////////////////////////////////////////////////////// |
|
24 |
|
25 ////////////////////////////////////////////////////////////////////////////// |
|
26 //CHECK#2 |
|
27 if (__func.prototype.constructor !== __func) { |
|
28 $ERROR('#2: __func.prototype.constructor === __func. Actual: __gunc.prototype.constructor ==='+__gunc.prototype.constructor); |
|
29 } |
|
30 // |
|
31 ////////////////////////////////////////////////////////////////////////////// |
|
32 |
|
33 var __constructor_was__enumed; |
|
34 |
|
35 for (__prop in __func.prototype){ |
|
36 if (__prop === 'constructor') |
|
37 __constructor_was__enumed = true; |
|
38 } |
|
39 |
|
40 ////////////////////////////////////////////////////////////////////////////// |
|
41 //CHECK#3 |
|
42 if (__constructor_was__enumed) { |
|
43 $ERROR('#3: __constructor_was__enumed === false. Actual: __constructor_was__enumed ==='+__constructor_was__enumed); |
|
44 } |
|
45 // |
|
46 ////////////////////////////////////////////////////////////////////////////// |
|
47 |
|
48 |
|
49 |
|
50 |
|
51 |
|
52 |