| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- function TestDefineProperty(desc, testName) {
- WScript.Echo(testName);
- CatchAndWriteExceptions(function () {
- Object.defineProperty(new Object(), "foo", desc);
- WScript.Echo("Success");
- });
- }
- function CatchAndWriteExceptions(func) {
- try {
- func();
- }
- catch (e) {
- WScript.Echo(e.name + ": " + e.number);
- }
- }
- var bools = [true, false];
- var boolsExtended = [true, false];
- boolsExtended[2] = undefined; // Work around WOOB 1099317 in compat mode
- var desc;
- for (var includeValue in bools) {
- for (var includeWritable in boolsExtended) {
- for (var includeGetter in bools) {
- for (var includeSetter in bools) {
- var s = "";
- var b;
- desc = {};
- b = bools[includeValue];
- if (b) { desc.value = "fooValue"; s += "value; "; }
- b = boolsExtended[includeWritable];
- if (b !== undefined) { desc.writable = b; s += "writable=" + b + "; "; }
- b = bools[includeGetter];
- if (b) { desc.get = function () { return "aValue"; }; s += "getter; "; }
- b = bools[includeSetter];
- if (b) { desc.set = function (v) { }; s += "setter; "; }
- TestDefineProperty(desc, s);
- }
- }
- }
- }
|