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 committed by Danielle Adams
parent e3a091d9f3
commit d5a9799e76
No known key found for this signature in database
GPG Key ID: D3A89613643B6201

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)) {
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;