|
1 // Any copyright is dedicated to the Public Domain. |
|
2 // http://creativecommons.org/licenses/publicdomain/ |
|
3 |
|
4 var watcherCount, setterCount; |
|
5 function watcher(id, oldval, newval) { watcherCount++; return newval; } |
|
6 function setter(newval) { setterCount++; } |
|
7 |
|
8 var p = { set x(v) { setter(v); } }; |
|
9 p.watch('x', watcher); |
|
10 |
|
11 watcherCount = setterCount = 0; |
|
12 p.x = 2; |
|
13 assertEq(setterCount, 1); |
|
14 assertEq(watcherCount, 1); |
|
15 |
|
16 var o = Object.defineProperty({}, 'x', { set:setter, enumerable:true, configurable:true }); |
|
17 o.watch('x', watcher); |
|
18 |
|
19 watcherCount = setterCount = 0; |
|
20 o.x = 2; |
|
21 assertEq(setterCount, 1); |
|
22 assertEq(watcherCount, 1); |
|
23 |
|
24 reportCompare(0, 0, 'ok'); |