mirror of https://gitee.com/bigwinds/arangodb
27 lines
995 B
JavaScript
27 lines
995 B
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);
|
|
});
|
|
}
|
|
}
|
|
});
|
|
|
|
}
|