is-reserved
Version:
Check if some keyword is reserved in Javascript. It supports all ECMAScript versions
45 lines (28 loc) • 2.06 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _ramda = require('ramda');
var _ramda2 = _interopRequireDefault(_ramda);
var isReserved = {};
isReserved.LATEST = 7;
isReserved.ES7 = 7;
isReserved.ES6 = 6;
isReserved.ES5 = 5;
isReserved.ES3 = 3;
isReserved.ES2 = 2;
isReserved.ES1 = 1;
isReserved.keywords = {};
isReserved.keywords[isReserved.ES1] = ['do', 'if', 'in', 'for', 'new', 'try', 'var', 'case', 'else', 'enum', 'null', 'this', 'true', 'void', 'with', 'break', 'catch', 'class', 'const', 'false', 'super', 'throw', 'while', 'delete', 'export', 'import', 'return', 'switch', 'typeof', 'default', 'extends', 'finally', 'continue', 'debugger', 'function'];
isReserved.keywords[isReserved.ES2] = _ramda2['default'].union(['int', 'byte', 'char', 'goto', 'long', 'final', 'float', 'short', 'double', 'native', 'public', 'static', 'throws', 'boolean', 'package', 'private', 'abstract', 'volatile', 'interface', 'protected', 'transient', 'implements', 'instanceof', 'synchronized'], isReserved.keywords[isReserved.ES1]);
isReserved.keywords[isReserved.ES3] = isReserved.keywords[isReserved.ES2];
isReserved.keywords[isReserved.ES5] = _ramda2['default'].union(_ramda2['default'].difference(isReserved.keywords[isReserved.ES3], ['int', 'byte', 'char', 'goto', 'long', 'final', 'float', 'short', 'double', 'native', 'throws', 'boolean', 'abstract', 'volatile', 'transient', 'synchronized']), ['let', 'yield']);
isReserved.keywords[isReserved.ES6] = _ramda2['default'].union(['await'], isReserved.keywords[isReserved.ES5]);
isReserved.keywords[isReserved.ES7] = isReserved.keywords[isReserved.ES6];
isReserved.check = function (word) {
var version = arguments[1] === undefined ? isReserved.LATEST : arguments[1];
return _ramda2['default'].is(String, word) && _ramda2['default'].indexOf(word, isReserved.keywords[version] || []) >= 0;
};
exports['default'] = isReserved;
module.exports = exports['default'];