runtime: polyfill Object.values()

Minimum supported Node version is 6.9.0, but Object.values() was introduced in
Node < 7. Let's use a polyfill if needed.

This will be removed when minimum supported Node version is raised to 8.9.0.

Fixes #3459
pull/3467/head
muxator 2018-08-15 22:34:05 +02:00
parent 7a6d969537
commit fc14f60a4b
2 changed files with 17 additions and 0 deletions

View File

@ -1,3 +1,19 @@
/*
* TODO: this polyfill is needed for Node 6.9 support.
*
* Once minimum supported Node version is raised to 8.9.0, it will be removed.
*/
if (!Object.values) {
var log4js = require('log4js');
var statsLogger = log4js.getLogger("stats");
statsLogger.warn(`Enabling a polyfill to run on this Node version (${process.version}). Next Etherpad version will remove support for Node version < 8.9.0. Please update your runtime.`);
var values = require('object.values');
values.shim();
}
var measured = require('measured-core')
module.exports = measured.createCollection();

View File

@ -45,6 +45,7 @@
"log4js": "0.6.35",
"measured-core": "1.11.2",
"npm": ">=4.0.2",
"object.values": "^1.0.4",
"request": "2.83.0",
"resolve": "1.1.7",
"security": "1.0.0",