Skip to content

Commit 7b4d403

Browse files
authored
More usage of arrow functions in JS library code. NFC (#17446)
See: #11984
1 parent 8c047b1 commit 7b4d403

15 files changed

+46
-49
lines changed

src/library.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -440,8 +440,8 @@ mergeInto(LibraryManager.library, {
440440
// AppleWebKit/605.1.15 Version/13.0.3 Intel Mac OS X 10_15_1 on Safari 13.0.3 (15608.3.10.1.4) on macOS Catalina 10.15.1
441441
// Hence the support status of .copyWithin() for Safari version range [10.0.0, 10.1.0] is unknown.
442442
emscripten_memcpy_big: '= Uint8Array.prototype.copyWithin\n' +
443-
' ? function(dest, src, num) { HEAPU8.copyWithin(dest, src, src + num); }\n' +
444-
' : function(dest, src, num) { HEAPU8.set(HEAPU8.subarray(src, src+num), dest); }\n',
443+
' ? (dest, src, num) => HEAPU8.copyWithin(dest, src, src + num)\n' +
444+
' : (dest, src, num) => HEAPU8.set(HEAPU8.subarray(src, src+num), dest)\n',
445445
#else
446446
emscripten_memcpy_big: function(dest, src, num) {
447447
HEAPU8.copyWithin(dest, src, src + num);
@@ -2210,8 +2210,8 @@ mergeInto(LibraryManager.library, {
22102210
// ==========================================================================
22112211
#if SOCKET_WEBRTC
22122212
$Sockets__deps: ['$setErrNo',
2213-
function() { return 'var SocketIO = ' + read('../third_party/socket.io.js') + ';\n' },
2214-
function() { return 'var Peer = ' + read('../third_party/wrtcp.js') + ';\n' }],
2213+
() => 'var SocketIO = ' + read('../third_party/socket.io.js') + ';\n',
2214+
() => 'var Peer = ' + read('../third_party/wrtcp.js') + ';\n'],
22152215
#else
22162216
$Sockets__deps: ['$setErrNo'],
22172217
#endif
@@ -2242,25 +2242,25 @@ mergeInto(LibraryManager.library, {
22422242
if (typeof crypto == 'object' && typeof crypto['getRandomValues'] == 'function') {
22432243
// for modern web browsers
22442244
var randomBuffer = new Uint8Array(1);
2245-
return function() { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; };
2245+
return () => { crypto.getRandomValues(randomBuffer); return randomBuffer[0]; };
22462246
} else
22472247
#if ENVIRONMENT_MAY_BE_NODE
22482248
if (ENVIRONMENT_IS_NODE) {
22492249
// for nodejs with or without crypto support included
22502250
try {
22512251
var crypto_module = require('crypto');
22522252
// nodejs has crypto support
2253-
return function() { return crypto_module['randomBytes'](1)[0]; };
2253+
return () => crypto_module['randomBytes'](1)[0];
22542254
} catch (e) {
22552255
// nodejs doesn't have crypto support
22562256
}
22572257
}
22582258
#endif // ENVIRONMENT_MAY_BE_NODE
22592259
// we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096
22602260
#if ASSERTIONS
2261-
return function() { abort("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };"); };
2261+
return () => abort("no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };");
22622262
#else
2263-
return function() { abort("randomDevice"); };
2263+
return () => abort("randomDevice");
22642264
#endif
22652265
},
22662266

@@ -3198,7 +3198,7 @@ mergeInto(LibraryManager.library, {
31983198
['keydown', 'mousedown', 'touchstart'].forEach(function(event) {
31993199
elements.forEach(function(element) {
32003200
if (element) {
3201-
listenOnce(element, event, function() {
3201+
listenOnce(element, event, () => {
32023202
if (ctx.state === 'suspended') ctx.resume();
32033203
});
32043204
}
@@ -3573,11 +3573,11 @@ mergeInto(LibraryManager.library, {
35733573
$asyncLoad__docs: '/** @param {boolean=} noRunDep */',
35743574
$asyncLoad: function(url, onload, onerror, noRunDep) {
35753575
var dep = !noRunDep ? getUniqueRunDependency('al ' + url) : '';
3576-
readAsync(url, function(arrayBuffer) {
3576+
readAsync(url, (arrayBuffer) => {
35773577
assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).');
35783578
onload(new Uint8Array(arrayBuffer));
35793579
if (dep) removeRunDependency(dep);
3580-
}, function(event) {
3580+
}, (event) => {
35813581
if (onerror) {
35823582
onerror();
35833583
} else {

src/library_browser.js

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ var LibraryBrowser = {
201201
assert(typeof url == 'string', 'createObjectURL must return a url as a string');
202202
#endif
203203
var audio = new Audio();
204-
audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926
204+
audio.addEventListener('canplaythrough', () => finish(audio), false); // use addEventListener due to chromium bug 124926
205205
audio.onerror = function audio_onerror(event) {
206206
if (done) return;
207207
err('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach');
@@ -256,14 +256,12 @@ var LibraryBrowser = {
256256
// than just running the promises in parallel, this makes a chain of
257257
// promises to run in series.
258258
wasmPlugin['asyncWasmLoadPromise'] = wasmPlugin['asyncWasmLoadPromise'].then(
259-
function() {
260-
return loadWebAssemblyModule(byteArray, {loadAsync: true, nodelete: true});
261-
}).then(
262-
function(module) {
259+
() => loadWebAssemblyModule(byteArray, {loadAsync: true, nodelete: true})).then(
260+
(module) => {
263261
preloadedWasm[name] = module;
264262
onload();
265263
},
266-
function(err) {
264+
(err) => {
267265
console.warn("Couldn't instantiate wasm: " + name + " '" + err + "'");
268266
onerror();
269267
});
@@ -289,12 +287,12 @@ var LibraryBrowser = {
289287
canvas['mozRequestPointerLock'] ||
290288
canvas['webkitRequestPointerLock'] ||
291289
canvas['msRequestPointerLock'] ||
292-
function(){};
290+
(() => {});
293291
canvas.exitPointerLock = document['exitPointerLock'] ||
294292
document['mozExitPointerLock'] ||
295293
document['webkitExitPointerLock'] ||
296294
document['msExitPointerLock'] ||
297-
function(){}; // no-op if function does not exist
295+
(() => {}); // no-op if function does not exist
298296
canvas.exitPointerLock = canvas.exitPointerLock.bind(document);
299297

300298
document.addEventListener('pointerlockchange', pointerLockChange, false);
@@ -303,7 +301,7 @@ var LibraryBrowser = {
303301
document.addEventListener('mspointerlockchange', pointerLockChange, false);
304302

305303
if (Module['elementPointerLock']) {
306-
canvas.addEventListener("click", function(ev) {
304+
canvas.addEventListener("click", (ev) => {
307305
if (!Browser.pointerLock && Module['canvas'].requestPointerLock) {
308306
Module['canvas'].requestPointerLock();
309307
ev.preventDefault();
@@ -440,8 +438,8 @@ var LibraryBrowser = {
440438
canvasContainer.requestFullscreen = canvasContainer['requestFullscreen'] ||
441439
canvasContainer['mozRequestFullScreen'] ||
442440
canvasContainer['msRequestFullscreen'] ||
443-
(canvasContainer['webkitRequestFullscreen'] ? function() { canvasContainer['webkitRequestFullscreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null) ||
444-
(canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null);
441+
(canvasContainer['webkitRequestFullscreen'] ? () => canvasContainer['webkitRequestFullscreen'](Element['ALLOW_KEYBOARD_INPUT']) : null) ||
442+
(canvasContainer['webkitRequestFullScreen'] ? () => canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) : null);
445443

446444
canvasContainer.requestFullscreen();
447445
},
@@ -789,11 +787,11 @@ var LibraryBrowser = {
789787
PATH.dirname(_file),
790788
PATH.basename(_file),
791789
new Uint8Array(data.object.contents), true, true,
792-
function() {
790+
() => {
793791
{{{ runtimeKeepalivePop() }}}
794792
if (onload) {{{ makeDynCall('vi', 'onload') }}}(file);
795793
},
796-
function() {
794+
() => {
797795
{{{ runtimeKeepalivePop() }}}
798796
if (onerror) {{{ makeDynCall('vi', 'onerror') }}}(file);
799797
},
@@ -818,11 +816,11 @@ var LibraryBrowser = {
818816
name,
819817
{{{ makeHEAPView('U8', 'data', 'data + size') }}},
820818
true, true,
821-
function() {
819+
() => {
822820
{{{ runtimeKeepalivePop() }}}
823821
if (onload) {{{ makeDynCall('vii', 'onload') }}}(arg, cname);
824822
},
825-
function() {
823+
() => {
826824
{{{ runtimeKeepalivePop() }}}
827825
if (onerror) {{{ makeDynCall('vi', 'onerror') }}}(arg);
828826
},
@@ -864,7 +862,7 @@ var LibraryBrowser = {
864862
}
865863
}
866864
};
867-
script.onerror = function() {
865+
script.onerror = () => {
868866
{{{ runtimeKeepalivePop() }}}
869867
if (onerror) onerror();
870868
};
@@ -912,14 +910,15 @@ var LibraryBrowser = {
912910
// Emulate setImmediate. (note: not a complete polyfill, we don't emulate clearImmediate() to keep code size to minimum, since not needed)
913911
var setImmediates = [];
914912
var emscriptenMainLoopMessageId = 'setimmediate';
915-
var Browser_setImmediate_messageHandler = function(/** @type {Event} */ event) {
913+
/** @param {Event} event */
914+
var Browser_setImmediate_messageHandler = (event) => {
916915
// When called in current thread or Worker, the main loop ID is structured slightly different to accommodate for --proxy-to-worker runtime listening to Worker events,
917916
// so check for both cases.
918917
if (event.data === emscriptenMainLoopMessageId || event.data.target === emscriptenMainLoopMessageId) {
919918
event.stopPropagation();
920919
setImmediates.shift()();
921920
}
922-
}
921+
};
923922
addEventListener("message", Browser_setImmediate_messageHandler, true);
924923
setImmediate = /** @type{function(function(): ?, ...?): number} */(function Browser_emulated_setImmediate(func) {
925924
setImmediates.push(func);
@@ -1103,7 +1102,7 @@ var LibraryBrowser = {
11031102
emscripten_set_main_loop_arg__deps: ['$setMainLoop'],
11041103
emscripten_set_main_loop_arg__sig: 'viiii',
11051104
emscripten_set_main_loop_arg: function(func, arg, fps, simulateInfiniteLoop) {
1106-
var browserIterationFunc = function() { {{{ makeDynCall('vi', 'func') }}}(arg); };
1105+
var browserIterationFunc = () => {{{ makeDynCall('vi', 'func') }}}(arg);
11071106
setMainLoop(browserIterationFunc, fps, simulateInfiniteLoop, arg);
11081107
},
11091108

src/library_ccall.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ mergeInto(LibraryManager.library, {
2929
#if MEMORY64
3030
'pointer': (p) => {{{ to64('p') }}},
3131
#endif
32-
'string': function(str) {
32+
'string': (str) => {
3333
var ret = 0;
3434
if (str !== null && str !== undefined && str !== 0) { // null string
3535
// at most 4 bytes per UTF-8 code point, +1 for the trailing '\0'
@@ -39,7 +39,7 @@ mergeInto(LibraryManager.library, {
3939
}
4040
return {{{ to64('ret') }}};
4141
},
42-
'array': function(arr) {
42+
'array': (arr) => {
4343
var ret = stackAlloc(arr.length);
4444
writeArrayToMemory(arr, ret);
4545
return {{{ to64('ret') }}};

src/library_dylink.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -800,7 +800,7 @@ var LibraryDylink = {
800800

801801
if (flags.loadAsync) {
802802
return new Promise(function(resolve, reject) {
803-
readAsync(libFile, function(data) { resolve(new Uint8Array(data)); }, reject);
803+
readAsync(libFile, (data) => resolve(new Uint8Array(data)), reject);
804804
});
805805
}
806806

src/library_eventloop.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ LibraryJSEventLoop = {
1616
$setImmediateWrapped: function(func) {
1717
if (!setImmediateWrapped.mapping) setImmediateWrapped.mapping = [];
1818
var id = setImmediateWrapped.mapping.length;
19-
setImmediateWrapped.mapping[id] = setImmediate(function() {
19+
setImmediateWrapped.mapping[id] = setImmediate(() => {
2020
setImmediateWrapped.mapping[id] = undefined;
2121
func();
2222
});
@@ -44,19 +44,19 @@ LibraryJSEventLoop = {
4444
'var __setImmediate_id_counter = 0;\n' +
4545
'var __setImmediate_queue = [];\n' +
4646
'var __setImmediate_message_id = "_si";\n' +
47-
'function __setImmediate_cb(/** @type {Event} */e) {\n' +
47+
'var __setImmediate_cb = (/** @type {Event} */e) => {\n' +
4848
'if (e.data === __setImmediate_message_id) {\n' +
4949
'e.stopPropagation();\n' +
5050
'__setImmediate_queue.shift()();\n' +
5151
'++__setImmediate_id_counter;\n' +
5252
'}\n' +
5353
'}\n' +
5454
'addEventListener("message", __setImmediate_cb, true);\n' +
55-
'emSetImmediate = function(func) {\n' +
55+
'emSetImmediate = (func) => {\n' +
5656
'postMessage(__setImmediate_message_id, "*");\n' +
5757
'return __setImmediate_id_counter + __setImmediate_queue.push(func) - 1;\n' +
5858
'}\n' +
59-
'emClearImmediate = /**@type{function(number=)}*/(function(id) {\n' +
59+
'emClearImmediate = /**@type{function(number=)}*/((id) => {\n' +
6060
'var index = id - __setImmediate_id_counter;\n' +
6161
'if (index >= 0 && index < __setImmediate_queue.length) __setImmediate_queue[index] = function() {};\n' + // must preserve the order and count of elements in the queue, so replace the pending callback with an empty function
6262
'})\n' +

src/worker.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@ if (ENVIRONMENT_IS_NODE) {
2222

2323
var parentPort = nodeWorkerThreads.parentPort;
2424

25-
parentPort.on('message', function(data) {
26-
onmessage({ data: data });
27-
});
25+
parentPort.on('message', (data) => onmessage({ data: data }));
2826

2927
var fs = require('fs');
3028

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
26202
1+
26170
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
26166
1+
26134
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
31596
1+
31564
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
26356
1+
26324
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
31696
1+
31664
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
26202
1+
26170
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
16010
1+
16000
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
95295
1+
95285
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
56744
1+
56734

0 commit comments

Comments
 (0)