Skip to content

Commit 5844b92

Browse files
committed
lib: simplify the readonly properties of icu
Call Object.defineProperty() twice to set readonly property is unnecessary.
1 parent 99c478e commit 5844b92

File tree

2 files changed

+9
-18
lines changed

2 files changed

+9
-18
lines changed

lib/internal/bootstrap_node.js

+3-18
Original file line numberDiff line numberDiff line change
@@ -440,28 +440,13 @@
440440
// of possible types.
441441
const versionTypes = icu.getVersion().split(',');
442442

443-
function makeGetter(name) {
444-
return () => {
445-
// With an argument, getVersion(type) returns
446-
// the actual version string.
447-
const version = icu.getVersion(name);
448-
// Replace the current getter with a new property.
449-
delete process.versions[name];
450-
Object.defineProperty(process.versions, name, {
451-
value: version,
452-
writable: false,
453-
enumerable: true
454-
});
455-
return version;
456-
};
457-
}
458-
459443
for (var n = 0; n < versionTypes.length; n++) {
460444
var name = versionTypes[n];
445+
const version = icu.getVersion(name);
461446
Object.defineProperty(process.versions, name, {
462-
configurable: true,
447+
writable: false,
463448
enumerable: true,
464-
get: makeGetter(name)
449+
value: version
465450
});
466451
}
467452
}

test/parallel/test-process-versions.js

+6
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,9 @@ assert(commonTemplate.test(process.versions.zlib));
3232
assert(/^\d+\.\d+\.\d+(?:\.\d+)?(?: \(candidate\))?$/
3333
.test(process.versions.v8));
3434
assert(/^\d+$/.test(process.versions.modules));
35+
36+
for (let i = 0; i < expected_keys.length; i++) {
37+
const key = expected_keys[i];
38+
const descriptor = Object.getOwnPropertyDescriptor(process.versions, key);
39+
assert.strictEqual(descriptor.writable, false);
40+
}

0 commit comments

Comments
 (0)