Skip to content

Commit

Permalink
Dev: Improve log display
Browse files Browse the repository at this point in the history
  • Loading branch information
surunzi committed Sep 5, 2016
1 parent ebc2fe0 commit 51e6435
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 5 deletions.
3 changes: 1 addition & 2 deletions src/lib/JsonViewer.es6
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import util from './util'
import highlight from './highlight.es6'

export default class JsonViewer
{
Expand Down Expand Up @@ -108,7 +107,7 @@ function createEl(key, val, firstLevel)
{
return `<li>
${wrapKey(key)}
<span class="eruda-function">${val.length > 250 ? encode(val) : highlight(val, 'js')}</span>
<span class="eruda-function">${encode(val).replace('function', '<span style="color:#a71d5d">function</span>')}</span>
</li>`;
}
if (val === '(...)' || val === '[circular]' || val === 'undefined' || val === 'Symbol')
Expand Down
23 changes: 20 additions & 3 deletions src/lib/stringify.es6
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ export default function stringify(obj, {

if (specialVal)
{
str = str.replace(/\\/g, '');
if (util.startWith(str, 'function'))
{
return fnWrapper + 'function' + wrapperEnd + ' ( )';
Expand Down Expand Up @@ -154,7 +155,7 @@ export default function stringify(obj, {
}
if (names.length === 0 && isFn)
{
json = wrapStr(escapeJsonStr(obj.toString()));
json = wrapStr(escapeJsonStr(extractFnHead(obj)));
} else
{
if (doStringify)
Expand All @@ -176,7 +177,9 @@ export default function stringify(obj, {
let descriptor = Object.getOwnPropertyDescriptor(obj, name);
if (descriptor.get)
{
return parts.push(`${key}: ${wrapStr('(...)')}`);
parts.push(`${key}: ${wrapStr('(...)')}`);
parts.push(`${wrapKey(escapeJsonStr('get ' + name))}: ${wrapStr(escapeJsonStr(extractFnHead(descriptor.get)))}`);
return;
}
}
parts.push(`${key}: ${stringify(topObj[name], passOpts)}`);
Expand Down Expand Up @@ -258,7 +261,9 @@ export default function stringify(obj, {
let descriptor = Object.getOwnPropertyDescriptor(obj, name);
if (descriptor.get)
{
return parts.push(`${key}: ${wrapStr('(...)')}`);
parts.push(`${key}: ${wrapStr('(...)')}`);
parts.push(`${wrapKey(escapeJsonStr('get ' + name))}: ${wrapStr(escapeJsonStr(extractFnHead(descriptor.get)))}`);
return;
}
}
parts.push(`${key}: ${stringify(topObj[name], passOpts)}`);
Expand Down Expand Up @@ -320,6 +325,18 @@ function transCode(code)
return code;
}

let regFnHead = /function(.*?)\(\)/;

function extractFnHead(fn)
{
let str = fn.toString(),
fnHead = str.match(regFnHead);

if (fnHead) return fnHead[0];

return str;
}

function canBeProto(obj)
{
let emptyObj = util.isEmpty(Object.getOwnPropertyNames(obj)),
Expand Down

0 comments on commit 51e6435

Please sign in to comment.