OLD | NEW |
| (Empty) |
1 // Copyright 2014 the V8 project authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 // Flags: --harmony-object-observe | |
6 // Flags: --expose-debug-as debug | |
7 | |
8 Debug = debug.Debug; | |
9 | |
10 var base_id = -1; | |
11 var exception = null; | |
12 var expected = [ | |
13 "enqueue #1", | |
14 "willHandle #1", | |
15 "didHandle #1", | |
16 ]; | |
17 | |
18 function assertLog(msg) { | |
19 print(msg); | |
20 assertTrue(expected.length > 0); | |
21 assertEquals(expected.shift(), msg); | |
22 if (!expected.length) { | |
23 Debug.setListener(null); | |
24 } | |
25 } | |
26 | |
27 function listener(event, exec_state, event_data, data) { | |
28 if (event != Debug.DebugEvent.AsyncTaskEvent) return; | |
29 try { | |
30 if (base_id < 0) | |
31 base_id = event_data.id(); | |
32 var id = event_data.id() - base_id + 1; | |
33 assertEquals("Object.observe", event_data.name()); | |
34 assertLog(event_data.type() + " #" + id); | |
35 } catch (e) { | |
36 print(e + e.stack) | |
37 exception = e; | |
38 } | |
39 } | |
40 | |
41 Debug.setListener(listener); | |
42 | |
43 var obj = {}; | |
44 Object.observe(obj, function(changes) { | |
45 print(change.type + " " + change.name + " " + change.oldValue); | |
46 }); | |
47 | |
48 obj.foo = 1; | |
49 obj.zoo = 2; | |
50 obj.foo = 3; | |
51 | |
52 assertNull(exception); | |
OLD | NEW |