| /* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ |
| /* This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| |
| |
| /** |
| File Name: 12.2-1.js |
| ECMA Section: The variable statement |
| Description: |
| |
| If the variable statement occurs inside a FunctionDeclaration, the |
| variables are defined with function-local scope in that function, as |
| described in section 10.1.3. Otherwise, they are defined with global |
| scope, that is, they are created as members of the global object, as |
| described in section 0. Variables are created when the execution scope |
| is entered. A Block does not define a new execution scope. Only Program and |
| FunctionDeclaration produce a new scope. Variables are initialized to the |
| undefined value when created. A variable with an Initializer is assigned |
| the value of its AssignmentExpression when the VariableStatement is executed, |
| not when the variable is created. |
| |
| Author: christine@netscape.com |
| Date: 12 november 1997 |
| */ |
| |
| var SECTION = "12.2-1"; |
| var VERSION = "ECMA_1"; |
| startTest(); |
| var TITLE = "The variable statement"; |
| |
| writeHeaderToLog( SECTION +" "+ TITLE); |
| |
| new TestCase( "SECTION", |
| "var x = 3; function f() { var a = x; var x = 23; return a; }; f()", |
| void 0, |
| eval("var x = 3; function f() { var a = x; var x = 23; return a; }; f()") ); |
| |
| test(); |
| |