| //------------------------------------------------------------------------------------------------------- | |
| // Copyright (C) Microsoft. All rights reserved. | |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. | |
| //------------------------------------------------------------------------------------------------------- | |
| function def_prop_array() | |
| { | |
| var array = []; | |
| Object.defineProperty(array, 0, { get: function() { WScript.Echo("array[0]"); } }); | |
| var sum = 0; | |
| for (var i = 0; i < 3; i++) | |
| { | |
| sum += array[0]; | |
| } | |
| } | |
| function def_prop_object() | |
| { | |
| var object = {}; | |
| Object.defineProperty(object, "sum", { get: function() { WScript.Echo("sum"); } }); | |
| var sum = 0; | |
| for (var i = 0; i < 3; i++) | |
| { | |
| sum += object.sum; | |
| } | |
| } | |
| function def_props_array() | |
| { | |
| var array = []; | |
| Object.defineProperties(array, | |
| { | |
| 0: { get: function() { WScript.Echo("array[0]"); } }, | |
| 1: { get: function() { WScript.Echo("array[1]"); } } | |
| }); | |
| var sum = 0; | |
| for (var i = 0; i < 3; i++) | |
| { | |
| sum += array[0]; | |
| } | |
| } | |
| function def_props_object() | |
| { | |
| var object = {}; | |
| Object.defineProperties(object, | |
| { | |
| sum1: { get: function() { WScript.Echo("sum1"); } }, | |
| sum2: { get: function() { WScript.Echo("sum2"); } } | |
| }); | |
| var sum = 0; | |
| for (var i = 0; i < 3; i++) | |
| { | |
| sum += object.sum1; | |
| } | |
| } | |
| function def_props_number() | |
| { | |
| function diag() { | |
| WScript.Echo("Type: " + (typeof this)); | |
| WScript.Echo(" Is Object: " + (this instanceof Object)); | |
| WScript.Echo(" Is Number: " + (this instanceof Number)); | |
| } | |
| Object.defineProperty( | |
| Number.prototype, | |
| "foo", | |
| { | |
| set: diag | |
| }); | |
| Object.defineProperty( | |
| Number.prototype, | |
| "42", | |
| { | |
| set: diag | |
| }); | |
| var runTests = function(obj) { | |
| WScript.Echo("** Testing property 'foo'"); | |
| obj.foo = {}; | |
| WScript.Echo(""); | |
| WScript.Echo("** Testing property 42"); | |
| obj[42] = {}; | |
| WScript.Echo(""); | |
| } | |
| var i = 3; | |
| runTests(i); | |
| var d = 3.14; | |
| runTests(d); | |
| } | |
| function main() | |
| { | |
| def_prop_array(); | |
| def_prop_object(); | |
| def_props_array(); | |
| def_props_object(); | |
| def_props_number(); | |
| } | |
| main(); |