wasi: refactor to avoid unsafe array iteration

PR-URL: https://github.com/nodejs/node/pull/36724
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
This commit is contained in:
Antoine du Hamel 2020-12-31 12:37:41 +01:00
parent 9e1e89000d
commit 08d8958a35

View File

@ -1,5 +1,6 @@
'use strict';
const {
ArrayPrototypeForEach,
ArrayPrototypeMap,
ArrayPrototypePush,
FunctionPrototypeBind,
@ -62,18 +63,22 @@ class WASI {
const env = [];
if (options.env !== undefined) {
validateObject(options.env, 'options.env');
for (const [key, value] of ObjectEntries(options.env)) {
if (value !== undefined)
ArrayPrototypePush(env, `${key}=${value}`);
}
ArrayPrototypeForEach(
ObjectEntries(options.env),
({ 0: key, 1: value }) => {
if (value !== undefined)
ArrayPrototypePush(env, `${key}=${value}`);
});
}
const preopens = [];
if (options.preopens !== undefined) {
validateObject(options.preopens, 'options.preopens');
for (const [key, value] of ObjectEntries(options.preopens)) {
ArrayPrototypePush(preopens, String(key), String(value));
}
ArrayPrototypeForEach(
ObjectEntries(options.preopens),
({ 0: key, 1: value }) =>
ArrayPrototypePush(preopens, String(key), String(value))
);
}
const { stdin = 0, stdout = 1, stderr = 2 } = options;