|
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 = 300079; |
|
8 var summary = "precompiled functions should inherit from current window's Function.prototype"; |
|
9 var actual = ''; |
|
10 var expect = ''; |
|
11 |
|
12 |
|
13 //----------------------------------------------------------------------------- |
|
14 test(); |
|
15 //----------------------------------------------------------------------------- |
|
16 |
|
17 function test() |
|
18 { |
|
19 enterFunc ('test'); |
|
20 printBugNumber(BUGNUMBER); |
|
21 printStatus (summary); |
|
22 |
|
23 if (typeof clone == 'undefined') { |
|
24 expect = 'SKIPPED'; |
|
25 actual = 'SKIPPED'; |
|
26 } |
|
27 else { |
|
28 expect = 'PASSED'; |
|
29 |
|
30 f = evaluate("(function () { return a * a; })", {compileAndGo: false}); |
|
31 g = clone(f, {a: 3}); |
|
32 f = null; |
|
33 gc(); |
|
34 try { |
|
35 a_squared = g(2); |
|
36 if (a_squared != 9) |
|
37 throw "Unexpected return from g: a_squared == " + a_squared; |
|
38 actual = "PASSED"; |
|
39 } catch (e) { |
|
40 actual = "FAILED: " + e; |
|
41 } |
|
42 } |
|
43 |
|
44 reportCompare(expect, actual, summary); |
|
45 |
|
46 exitFunc ('test'); |
|
47 } |