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.
52 lines
1.1 KiB
52 lines
1.1 KiB
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);
|
|
});
|
|
}
|
|
}
|
|
});
|
|
};
|