123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- 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);
- });
- }
- }
- });
- };
|