js/src/tests/ecma_3/Statements/12.6.3.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:3641d588104c
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6 //-----------------------------------------------------------------------------
7 var BUGNUMBER = 292731;
8 var summary = 'for-in should not call valueOf method';
9 var actual = '';
10 var expect = '';
11 var i;
12
13 printBugNumber(BUGNUMBER);
14 printStatus (summary);
15
16 function MyObject()
17 {
18 }
19
20 MyObject.prototype.valueOf = function()
21 {
22 actual += 'MyObject.prototype.valueOf called. ';
23 }
24
25 var myobject = new MyObject();
26
27 var myfunction = new function()
28 {
29 this.valueOf = function()
30 {
31 actual += 'this.valueOf called. ';
32 }
33 }
34
35 actual = '';
36 for (i in myobject)
37 {
38 //calls valueOf
39 }
40 reportCompare(expect, actual, 'for-in custom object');
41
42 actual = '';
43 for (i in myfunction)
44 {
45 //calls valueOf
46 }
47 reportCompare(expect, actual, 'for-in function expression');

mercurial