aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual/threading/workerscript/workerscript.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/threading/workerscript/workerscript.mjs')
-rw-r--r--tests/manual/threading/workerscript/workerscript.mjs27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/manual/threading/workerscript/workerscript.mjs b/tests/manual/threading/workerscript/workerscript.mjs
new file mode 100644
index 0000000000..560c304b47
--- /dev/null
+++ b/tests/manual/threading/workerscript/workerscript.mjs
@@ -0,0 +1,27 @@
+// Copyright (C) 2017 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+//Will be initialized when WorkerScript{} is instantiated
+var cache = new Array(64);
+for (var i = 0; i < 64; i++)
+ cache[i] = new Array(64);
+
+function triangle(row, column) {
+ if (cache[row][column])
+ return cache[row][column]
+ if (column < 0 || column > row)
+ return -1;
+ if (column == 0 || column == row)
+ return 1;
+ return triangle(row-1, column-1) + triangle(row-1, column);
+}
+//! [0]
+WorkerScript.onMessage = function(message) {
+ //Calculate result (may take a while, using a naive algorithm)
+ var calculatedResult = triangle(message.row, message.column);
+ //Send result back to main thread
+ WorkerScript.sendMessage( { row: message.row,
+ column: message.column,
+ result: calculatedResult} );
+}
+//! [0]