blob: 6b6221ad8850f4c24d737c6001bc7fbf6036f357 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file adds JavaScript APIs that are accessible to the C++ layer.
// See: https://emscripten.org/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.html#implement-a-c-api-in-javascript
mergeInto(LibraryManager.library, {
$skwasm_threading_setup__postset: 'skwasm_threading_setup();',
$skwasm_threading_setup: function() {
let messageListener;
skwasm_registerMessageListener = function(threadId, listener) {
messageListener = listener;
};
skwasm_getCurrentTimestamp = function() {
return performance.now();
};
skwasm_postMessage = function(message, transfers, threadId) {
queueMicrotask(() => {
messageListener(message);
})
};
},
$skwasm_threading_setup__deps: ['$skwasm_registerMessageListener', '$skwasm_getCurrentTimestamp', '$skwasm_postMessage'],
$skwasm_registerMessageListener: function() {},
$skwasm_registerMessageListener__deps: ['$skwasm_threading_setup'],
$skwasm_getCurrentTimestamp: function () {},
$skwasm_getCurrentTimestamp__deps: ['$skwasm_threading_setup'],
$skwasm_postMessage: function () {},
$skwasm_postMessage__deps: ['$skwasm_threading_setup'],
});