MOOver.js/node_modules/i/lib/native.js
2022-02-18 13:54:33 +01:00

51 lines
1.1 KiB
JavaScript

module.exports = function (obj) {
var addProperty = function (method, func) {
String.prototype.__defineGetter__(method, func);
};
var stringPrototypeBlacklist = [
'__defineGetter__',
'__defineSetter__',
'__lookupGetter__',
'__lookupSetter__',
'charAt',
'constructor',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'toLocaleString',
'toString',
'valueOf',
'charCodeAt',
'indexOf',
'lastIndexof',
'length',
'localeCompare',
'match',
'replace',
'search',
'slice',
'split',
'substring',
'toLocaleLowerCase',
'toLocaleUpperCase',
'toLowerCase',
'toUpperCase',
'trim',
'trimLeft',
'trimRight',
'gsub',
];
Object.keys(obj).forEach(function (key) {
if (key != 'inflect' && key != 'inflections') {
if (stringPrototypeBlacklist.indexOf(key) !== -1) {
console.log('warn: You should not override String.prototype.' + key);
} else {
addProperty(key, function () {
return obj[key](this);
});
}
}
});
};