| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- function top1() {
- var xx = new Object();
- Object.defineProperty(xx, "yy", { set: function(val) {telemetryLog("in nested setter1", true); this.val = 10;} });
- var z = function() {
- xx.yy = 20;
- telemetryLog(`val is ${xx.yy}`, true);
- }
- return z;
- }
- var foo1 = top1();
- function top2() {
- var xx = new Object();
- Object.defineProperty(xx, "yy", { get: function() { return this; },
- set: function(val) {telemetryLog("in nested setter2", true); this.val = 11;} });
- var z = function() {
- xx.yy = 20;
- telemetryLog(`val is ${xx.yy}`, true);
- telemetryLog(`val is ${xx.yy.val}`, true);
- }
- return z;
- }
- var foo2 = top2();
- function top3() {
- Object.defineProperty(this, "yy", { get: function() { return this; },
- set: function(val) {telemetryLog("in nested setter3"); this.val = 12;} });
- var z = function() {
- yy = 20;
- telemetryLog(`val is ${yy}`, true);
- telemetryLog(`val is ${yy.val}`, true);
- }
- return z;
- }
- var foo3 = top3();
- WScript.SetTimeout(testFunction, 50);
- /////////////////
- function testFunction()
- {
- telemetryLog("test1: nested setter without getter", true);
- foo1();
- telemetryLog("test2: nested setter and setter", true);
- foo2();
- telemetryLog("test3: nested setter and setter from this", true);
- foo3();
- }
|