| // Copyright 2009 the Sputnik authors. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| info: | |
| When the [[Construct]] property for a Function object F is called: |
| A new native ECMAScript object is created. |
| Gets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL). |
| If PROTO_VAL is an object, sets the [[Prototype]] property of native ECMAScript object just created |
| to the PROTO_VAL |
| es5id: 13.2.2_A4_T2 |
| description: Declaring a function with "__FACTORY = function()" |
| ---*/ |
| |
| var __CUBE, __FACTORY, __device; |
| |
| __CUBE="cube"; |
| |
| __FACTORY = function(){}; |
| |
| __FACTORY.prototype={ shape:__CUBE, printShape:function(){return this.shape;} }; |
| |
| __device = new __FACTORY(); |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| //CHECK#1 |
| if (__device.printShape === undefined) { |
| $ERROR('#1: __device.printShape !== undefined. Actual: __device.printShape ==='+__device.printShape); |
| } |
| // |
| ////////////////////////////////////////////////////////////////////////////// |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| //CHECK#2 |
| if (__device.printShape() !== __CUBE) { |
| $ERROR('#2: __device.printShape() === __CUBE. Actual: __device.printShape() ==='+__device.printShape()); |
| } |
| // |
| ////////////////////////////////////////////////////////////////////////////// |