| //------------------------------------------------------------------------------------------------------- | |
| // Copyright (C) Microsoft. All rights reserved. | |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. | |
| //------------------------------------------------------------------------------------------------------- | |
| function write(v) { WScript.Echo(v + ""); } | |
| var r; | |
| var globalX; | |
| var a = new Array(10); | |
| var o = { x : 1, y : 2 }; | |
| // Delete a uninitialized global variable | |
| r = delete globalX; | |
| write("delete uninitialized variable globalX: " + r); | |
| write("globalX : " + globalX); | |
| var explicitVar = 10; | |
| r = delete explicitVar; | |
| write("delete explicitVar : " + r); | |
| write("value explicitVar : " + explicitVar); | |
| implicitVar = 20; | |
| r = delete implicitVar; | |
| write("delete implicitVar : " + r); | |
| try { | |
| write("value implicitVar : " + implicitVar); | |
| } catch (e) { | |
| write("value implicitVar : Exception"); | |
| } | |
| eval("var explicitVarInEval = 30;") | |
| r = delete explicitVarInEval; | |
| write("delete explicitVarInEval : " + r); | |
| try { | |
| write("value explicitVarInEval : " + explicitVarInEval); | |
| } catch (e) { | |
| write("value explicitVarInEval : Exception"); | |
| } | |
| eval("implicitVarInEval = 40;") | |
| r = delete implicitVarInEval; | |
| write("delete implicitVarInEval : " + r); | |
| try { | |
| write("value implicitVarInEval : " + implicitVarInEval); | |
| } catch (e) { | |
| write("value implicitVarInEval : Exception"); | |
| } | |
| Array.prototype[2] = 100; | |
| a[1] = 200; | |
| write("a[1] = " + a[1]); | |
| r = delete a[1]; | |
| write("delete a[1] : " + r); | |
| write("a[1] = " + a[1]); | |
| write("a[2] = " + a[2]); | |
| r = delete a[2]; | |
| write("delete a[2] : " + r); | |
| write("a[2] = " + a[2]); | |
| write("o.x = " + o.x); | |
| r = delete o.x; | |
| write("delete o.x : " + r); | |
| write("o.x = " + o.x); | |
| r = delete o.x; | |
| write("delete o.x (again): " + r); | |
| write("o.z = " + o.z); | |
| r = delete o.z; | |
| write("delete o.z (non existing property): " + r); | |
| write("o.z = " + o.z); |