Advertisement
Guest User

Untitled

a guest
May 19th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. (function (global) {
  2. var origPrint = print;
  3. var _serialize = function (obj) {
  4. var str = JSON.stringify(obj, function(key, value) {
  5. if (key && typeof value == 'object' && obj === value) {
  6. return '#[[Circular]]#';
  7. }
  8. else if (typeof value === 'function') {
  9. return '#[[Function]]#';
  10. }
  11. else if (typeof value === 'undefined') {
  12. return '#[undefined]#';
  13. }
  14. else if (value && typeof value === 'object' && !Array.isArray(value)) {
  15. var temp = {};
  16. Object.keys(value).forEach(function(k){
  17. var desc = Object.getOwnPropertyDescriptor(value, k) || {};
  18. if (desc.set && desc.get) temp[k] = '#[[Getter/Setter]]#';
  19. else if (desc.set) temp[k] = '#[[Setter]]#';
  20. else if (desc.get) temp[k] = '#[[Getter]]#';
  21. else temp[k] = value[k];
  22. });
  23. return temp;
  24. }
  25. return value;
  26. }, 2);
  27. str = str.replace(/"#\[(.*?)\]#"/g, '$1');
  28. str = str.replace(/\\"/g,"\uFFFF");
  29. str = str.replace(/\"([^"]+)\":/g,"$1:").replace(/\uFFFF/g,"\\\"");
  30. return str;
  31. }
  32.  
  33. var _format = function(f) {
  34. if (typeof f !== 'string') {
  35. var objects = [];
  36. for (var i = 0; i < arguments.length; i++) {
  37. objects.push(_serialize(arguments[i]));
  38. }
  39. return objects.join(' ');
  40. }
  41.  
  42. var i = 1;
  43. var args = arguments;
  44. var len = args.length;
  45. var str = String(f).replace(/%[sdj%]/g, function(x) {
  46. if (x === '%%') return '%';
  47. if (i >= len) return x;
  48. switch (x) {
  49. case '%s': return String(args[i++]);
  50. case '%d': return Number(args[i++]);
  51. case '%j': return _serialize(args[i++]);
  52. default: return x;
  53. }
  54. });
  55. for (var x = args[i]; i < len; x = args[++i]) {
  56. str += ' ' + _serialize(x);
  57. }
  58. return str;
  59. };
  60.  
  61. global.console = {
  62. log : function(){
  63. origPrint( _format.apply(null, arguments) )
  64. }
  65. };
  66. })(this);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement