initial import
[vuplus_webkit] / Source / JavaScriptCore / tests / mozilla / ecma_3 / ExecutionContexts / 10.1.4-1.js
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2  *
3  * The contents of this file are subject to the Netscape Public
4  * License Version 1.1 (the "License"); you may not use this file
5  * except in compliance with the License. You may obtain a copy of
6  * the License at http://www.mozilla.org/NPL/
7  *
8  * Software distributed under the License is distributed on an "AS
9  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
10  * implied. See the License for the specific language governing
11  * rights and limitations under the License.
12  *
13  * The Original Code is Mozilla Communicator client code, released March
14  * 31, 1998.
15  *
16  * The Initial Developer of the Original Code is Netscape Communications
17  * Corporation. Portions created by Netscape are
18  * Copyright (C) 1998 Netscape Communications Corporation. All
19  * Rights Reserved.
20  *
21  * Contributor(s): 
22  * Rob Ginda rginda@netscape.com
23  */
24
25 /**
26     ECMA Section: 10.1.4.1 Entering An Execution Context
27     ECMA says:
28         * Global Code, Function Code
29           Variable instantiation is performed using the global object as the
30           variable object and using property attributes { DontDelete }.
31
32         * Eval Code
33           Variable instantiation is performed using the calling context's 
34           variable object and using empty property attributes.
35 */
36
37 test();
38
39 function test()
40 {
41     enterFunc ("test");
42
43     var y;
44     eval("var x = 1");
45
46     if (delete y)
47         reportFailure ("Expected *NOT* to be able to delete y");
48
49     if (typeof x == "undefined")
50         reportFailure ("x did not remain defined after eval()");
51     else if (x != 1)
52         reportFailure ("x did not retain it's value after eval()");
53     
54     if (!delete x)
55         reportFailure ("Expected to be able to delete x");
56
57     exitFunc("test");        
58 }