summaryrefslogtreecommitdiff
path: root/src/3rdparty/v8/test/mjsunit/debug-set-variable-value.js
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-08-15 15:54:05 +0200
committerOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-08-16 16:20:11 +0200
commit8e9bfdfbff1eee5d00cac44c2270a14467eccd35 (patch)
tree687776c992417cd778f80e5937d6adaed0fa5cee /src/3rdparty/v8/test/mjsunit/debug-set-variable-value.js
parent2e8e6b78cf673d12beb240434e6a92470a9c5603 (diff)
downloadqtjsbackend-dev.tar.gz
mark module as deaddev
Change-Id: I97cc8c13f62b1dce18509de0b6947115b305233a Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/3rdparty/v8/test/mjsunit/debug-set-variable-value.js')
-rw-r--r--src/3rdparty/v8/test/mjsunit/debug-set-variable-value.js308
1 files changed, 0 insertions, 308 deletions
diff --git a/src/3rdparty/v8/test/mjsunit/debug-set-variable-value.js b/src/3rdparty/v8/test/mjsunit/debug-set-variable-value.js
deleted file mode 100644
index 4667a71..0000000
--- a/src/3rdparty/v8/test/mjsunit/debug-set-variable-value.js
+++ /dev/null
@@ -1,308 +0,0 @@
-// Copyright 2012 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived
-// from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-// Flags: --expose-debug-as debug
-
-// Get the Debug object exposed from the debug context global object.
-var Debug = debug.Debug;
-
-// Accepts a function/closure 'fun' that must have a debugger statement inside.
-// A variable 'variable_name' must be initialized before debugger statement
-// and returned after the statement. The test will alter variable value when
-// on debugger statement and check that returned value reflects the change.
-function RunPauseTest(scope_number, expected_old_result, variable_name,
- new_value, expected_new_result, fun) {
- var actual_old_result = fun();
- assertEquals(expected_old_result, actual_old_result);
-
- var listener_delegate;
- var listener_called = false;
- var exception = null;
-
- function listener_delegate(exec_state) {
- var scope = exec_state.frame(0).scope(scope_number);
- scope.setVariableValue(variable_name, new_value);
- }
-
- function listener(event, exec_state, event_data, data) {
- try {
- if (event == Debug.DebugEvent.Break) {
- listener_called = true;
- listener_delegate(exec_state);
- }
- } catch (e) {
- exception = e;
- }
- }
-
- // Add the debug event listener.
- Debug.setListener(listener);
-
- var actual_new_value;
- try {
- actual_new_result = fun();
- } finally {
- Debug.setListener(null);
- }
-
- if (exception != null) {
- assertUnreachable("Exception in listener\n" + exception.stack);
- }
- assertTrue(listener_called);
-
- assertEquals(expected_new_result, actual_new_result);
-}
-
-// Accepts a closure 'fun' that returns a variable from it's outer scope.
-// The test changes the value of variable via the handle to function and checks
-// that the return value changed accordingly.
-function RunClosureTest(scope_number, expected_old_result, variable_name,
- new_value, expected_new_result, fun) {
- var actual_old_result = fun();
- assertEquals(expected_old_result, actual_old_result);
-
- var fun_mirror = Debug.MakeMirror(fun);
-
- var scope = fun_mirror.scope(scope_number);
- scope.setVariableValue(variable_name, new_value);
-
- var actual_new_result = fun();
-
- assertEquals(expected_new_result, actual_new_result);
-}
-
-
-function ClosureTestCase(scope_index, old_result, variable_name, new_value,
- new_result, success_expected, factory) {
- this.scope_index_ = scope_index;
- this.old_result_ = old_result;
- this.variable_name_ = variable_name;
- this.new_value_ = new_value;
- this.new_result_ = new_result;
- this.success_expected_ = success_expected;
- this.factory_ = factory;
-}
-
-ClosureTestCase.prototype.run_pause_test = function() {
- var th = this;
- var fun = this.factory_(true);
- this.run_and_catch_(function() {
- RunPauseTest(th.scope_index_ + 1, th.old_result_, th.variable_name_,
- th.new_value_, th.new_result_, fun);
- });
-}
-
-ClosureTestCase.prototype.run_closure_test = function() {
- var th = this;
- var fun = this.factory_(false);
- this.run_and_catch_(function() {
- RunClosureTest(th.scope_index_, th.old_result_, th.variable_name_,
- th.new_value_, th.new_result_, fun);
- });
-}
-
-ClosureTestCase.prototype.run_and_catch_ = function(runnable) {
- if (this.success_expected_) {
- runnable();
- } else {
- assertThrows(runnable);
- }
-}
-
-
-// Test scopes visible from closures.
-
-var closure_test_cases = [
- new ClosureTestCase(0, 'cat', 'v1', 5, 5, true,
- function Factory(debug_stop) {
- var v1 = 'cat';
- return function() {
- if (debug_stop) debugger;
- return v1;
- }
- }),
-
- new ClosureTestCase(0, 4, 't', 7, 9, true, function Factory(debug_stop) {
- var t = 2;
- var r = eval("t");
- return function() {
- if (debug_stop) debugger;
- return r + t;
- }
- }),
-
- new ClosureTestCase(0, 6, 't', 10, 13, true, function Factory(debug_stop) {
- var t = 2;
- var r = eval("t = 3");
- return function() {
- if (debug_stop) debugger;
- return r + t;
- }
- }),
-
- new ClosureTestCase(0, 17, 's', 'Bird', 'Bird', true,
- function Factory(debug_stop) {
- eval("var s = 17");
- return function() {
- if (debug_stop) debugger;
- return s;
- }
- }),
-
- new ClosureTestCase(2, 'capybara', 'foo', 77, 77, true,
- function Factory(debug_stop) {
- var foo = "capybara";
- return (function() {
- var bar = "fish";
- try {
- throw {name: "test exception"};
- } catch (e) {
- return function() {
- if (debug_stop) debugger;
- bar = "beast";
- return foo;
- }
- }
- })();
- }),
-
- new ClosureTestCase(0, 'AlphaBeta', 'eee', 5, '5Beta', true,
- function Factory(debug_stop) {
- var foo = "Beta";
- return (function() {
- var bar = "fish";
- try {
- throw "Alpha";
- } catch (eee) {
- return function() {
- if (debug_stop) debugger;
- return eee + foo;
- }
- }
- })();
- })
-];
-
-for (var i = 0; i < closure_test_cases.length; i++) {
- closure_test_cases[i].run_pause_test();
-}
-
-for (var i = 0; i < closure_test_cases.length; i++) {
- closure_test_cases[i].run_closure_test();
-}
-
-
-// Test local scope.
-
-RunPauseTest(0, 'HelloYou', 'u', 'We', 'HelloWe', (function Factory() {
- return function() {
- var u = "You";
- var v = "Hello";
- debugger;
- return v + u;
- }
-})());
-
-RunPauseTest(0, 'Helloworld', 'p', 'GoodBye', 'HelloGoodBye',
- (function Factory() {
- function H(p) {
- var v = "Hello";
- debugger;
- return v + p;
- }
- return function() {
- return H("world");
- }
-})());
-
-RunPauseTest(0, 'mouse', 'v1', 'dog', 'dog', (function Factory() {
- return function() {
- var v1 = 'cat';
- eval("v1 = 'mouse'");
- debugger;
- return v1;
- }
-})());
-
-RunPauseTest(0, 'mouse', 'v1', 'dog', 'dog', (function Factory() {
- return function() {
- eval("var v1 = 'mouse'");
- debugger;
- return v1;
- }
-})());
-
-
-// Check that we correctly update local variable that
-// is referenced from an inner closure.
-RunPauseTest(0, 'Blue', 'v', 'Green', 'Green', (function Factory() {
- return function() {
- function A() {
- var v = "Blue";
- function Inner() {
- return void v;
- }
- debugger;
- return v;
- }
- return A();
- }
-})());
-
-// Check that we correctly update parameter, that is known to be stored
-// both on stack and in heap.
-RunPauseTest(0, 5, 'p', 2012, 2012, (function Factory() {
- return function() {
- function A(p) {
- function Inner() {
- return void p;
- }
- debugger;
- return p;
- }
- return A(5);
- }
-})());
-
-
-// Test value description protocol JSON
-
-assertEquals(true, Debug.TestApi.CommandProcessorResolveValue({value: true}));
-
-assertSame(null, Debug.TestApi.CommandProcessorResolveValue({type: "null"}));
-assertSame(undefined,
- Debug.TestApi.CommandProcessorResolveValue({type: "undefined"}));
-
-assertSame("123", Debug.TestApi.CommandProcessorResolveValue(
- {type: "string", stringDescription: "123"}));
-assertSame(123, Debug.TestApi.CommandProcessorResolveValue(
- {type: "number", stringDescription: "123"}));
-
-assertSame(Number, Debug.TestApi.CommandProcessorResolveValue(
- {handle: Debug.MakeMirror(Number).handle()}));
-assertSame(RunClosureTest, Debug.TestApi.CommandProcessorResolveValue(
- {handle: Debug.MakeMirror(RunClosureTest).handle()}));