node/lib/internal/per_context.js
Rich Trott 1c30343984 lib: fix segfault with --without-intl
Node.js segfaults when build with `--without-intl` due to an oversight
in d13cdd9. This fixes the issue.

PR-URL: https://github.com/nodejs/node/pull/21589
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2018-06-29 13:17:35 -07:00

53 lines
1.2 KiB
JavaScript

'use strict';
// node::NewContext calls this script
(function(global) {
// https://github.com/nodejs/node/issues/14909
if (global.Intl) delete global.Intl.v8BreakIterator;
// https://github.com/nodejs/node/issues/21219
// Adds Atomics.notify and warns on first usage of Atomics.wake
const AtomicsWake = global.Atomics.wake;
const ReflectApply = global.Reflect.apply;
// wrap for function.name
function notify(...args) {
return ReflectApply(AtomicsWake, this, args);
}
const warning = 'Atomics.wake will be removed in a future version, ' +
'use Atomics.notify instead.';
let wakeWarned = false;
function wake(...args) {
if (!wakeWarned) {
wakeWarned = true;
if (global.process !== undefined) {
global.process.emitWarning(warning, 'Atomics');
} else {
global.console.error(`Atomics: ${warning}`);
}
}
return ReflectApply(AtomicsWake, this, args);
}
global.Object.defineProperties(global.Atomics, {
notify: {
value: notify,
writable: true,
enumerable: false,
configurable: true,
},
wake: {
value: wake,
writable: true,
enumerable: false,
configurable: true,
},
});
}(this));