diff options
Diffstat (limited to 'tests/manual/threading/workerscript/workerscript.mjs')
| -rw-r--r-- | tests/manual/threading/workerscript/workerscript.mjs | 27 |
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] |
