Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / inspector / sources / debugger / resources / framework.js
1 // A framework for testing.
2
3 var Framework = {};
4
5 Framework.safeRun = function(callback, onSuccess, onException, breakOnUncaught)
6 {
7     try {
8         callback();
9         if (onSuccess)
10             Framework.safeRun(onSuccess, undefined, onException, breakOnUncaught);
11     } catch (e) {
12         if (onException)
13             Framework.safeRun(onException, undefined, breakOnUncaught ? Framework.breakInFramework : undefined);
14         else if (breakOnUncaught)
15             Framework.breakInFramework();
16     }
17 }
18
19 Framework.throwFrameworkException = function(msg)
20 {
21     throw Error("FrameworkException" + (msg ? ": " + msg : ""));
22 }
23
24 Framework.breakInFramework = function()
25 {
26     debugger;
27 }
28
29 Framework.empty = function()
30 {
31 }
32
33 Framework.doSomeWork = function()
34 {
35     const numberOfSteps = 50;
36     for (var i = 0; i < numberOfSteps; ++i) {
37         if (window["dummy property should not exist!" + i]) // Prevent optimizations.
38             return i;
39         Framework.safeRun(Framework.empty, Framework.empty, Framework.empty, true);
40     }
41 }
42
43 Framework.schedule = function(callback, delay)
44 {
45     setTimeout(callback, delay || 0);
46 }
47
48 Framework.willSchedule = function(callback, delay)
49 {
50     return function Framework_willSchedule() {
51         return Framework.schedule(callback, delay);
52     };
53 }
54
55 Framework.doSomeAsyncChainCalls = function(callback)
56 {
57     var func1 = Framework.willSchedule(function Framework_inner1() {
58         if (callback)
59             callback();
60     });
61     var func2 = Framework.willSchedule(function Framework_inner2() {
62         if (window.callbackFromFramework)
63             window.callbackFromFramework(func1);
64         else
65             func1();
66     });
67     Framework.schedule(func2);
68 }