Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function (global) {
- var origPrint = print;
- var _serialize = function (obj) {
- var str = JSON.stringify(obj, function(key, value) {
- if (key && typeof value == 'object' && obj === value) {
- return '#[[Circular]]#';
- }
- else if (typeof value === 'function') {
- return '#[[Function]]#';
- }
- else if (typeof value === 'undefined') {
- return '#[undefined]#';
- }
- else if (value && typeof value === 'object' && !Array.isArray(value)) {
- var temp = {};
- Object.keys(value).forEach(function(k){
- var desc = Object.getOwnPropertyDescriptor(value, k) || {};
- if (desc.set && desc.get) temp[k] = '#[[Getter/Setter]]#';
- else if (desc.set) temp[k] = '#[[Setter]]#';
- else if (desc.get) temp[k] = '#[[Getter]]#';
- else temp[k] = value[k];
- });
- return temp;
- }
- return value;
- }, 2);
- str = str.replace(/"#\[(.*?)\]#"/g, '$1');
- str = str.replace(/\\"/g,"\uFFFF");
- str = str.replace(/\"([^"]+)\":/g,"$1:").replace(/\uFFFF/g,"\\\"");
- return str;
- }
- var _format = function(f) {
- if (typeof f !== 'string') {
- var objects = [];
- for (var i = 0; i < arguments.length; i++) {
- objects.push(_serialize(arguments[i]));
- }
- return objects.join(' ');
- }
- var i = 1;
- var args = arguments;
- var len = args.length;
- var str = String(f).replace(/%[sdj%]/g, function(x) {
- if (x === '%%') return '%';
- if (i >= len) return x;
- switch (x) {
- case '%s': return String(args[i++]);
- case '%d': return Number(args[i++]);
- case '%j': return _serialize(args[i++]);
- default: return x;
- }
- });
- for (var x = args[i]; i < len; x = args[++i]) {
- str += ' ' + _serialize(x);
- }
- return str;
- };
- global.console = {
- log : function(){
- origPrint( _format.apply(null, arguments) )
- }
- };
- })(this);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement