You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
537 B
22 lines
537 B
'use strict'
|
|
|
|
const warnDeprecation = require('./warn-deprecation')
|
|
|
|
// Node 4 doesn’t support new.target.
|
|
let hasNewTarget
|
|
|
|
try {
|
|
// eslint-disable-next-line no-eval
|
|
eval('(function () { new.target })')
|
|
hasNewTarget = true
|
|
} catch (error) {
|
|
hasNewTarget = false
|
|
}
|
|
|
|
const checkConstructor = (name, code, getNewTarget) => {
|
|
if (hasNewTarget && getNewTarget() === undefined) {
|
|
warnDeprecation(`Constructing a ${name} without new is deprecated and will stop working in pg 8.`, code)
|
|
}
|
|
}
|
|
|
|
module.exports = checkConstructor
|
|
|