Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
12805c73
Commit
12805c73
authored
Aug 17, 2015
by
Jeffrey Wilcke
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1667 from fjl/pretty-printer-improvements
jsre: pretty printer improvements
parents
f6367548
1086e2f2
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
6 deletions
+18
-6
jsre.go
jsre/jsre.go
+1
-0
pretty.go
jsre/pretty.go
+17
-6
No files found.
jsre/jsre.go
View file @
12805c73
...
...
@@ -66,6 +66,7 @@ func New(assetPath string) *JSRE {
re
.
loopWg
.
Add
(
1
)
go
re
.
runEventLoop
()
re
.
Set
(
"loadScript"
,
re
.
loadScript
)
re
.
Set
(
"inspect"
,
prettyPrintJS
)
return
re
}
...
...
jsre/pretty.go
View file @
12805c73
...
...
@@ -51,7 +51,15 @@ var boringKeys = map[string]bool{
// prettyPrint writes value to standard output.
func
prettyPrint
(
vm
*
otto
.
Otto
,
value
otto
.
Value
)
{
ppctx
{
vm
}
.
printValue
(
value
,
0
)
ppctx
{
vm
}
.
printValue
(
value
,
0
,
false
)
}
func
prettyPrintJS
(
call
otto
.
FunctionCall
)
otto
.
Value
{
for
_
,
v
:=
range
call
.
ArgumentList
{
prettyPrint
(
call
.
Otto
,
v
)
fmt
.
Println
()
}
return
otto
.
UndefinedValue
()
}
type
ppctx
struct
{
vm
*
otto
.
Otto
}
...
...
@@ -60,10 +68,10 @@ func (ctx ppctx) indent(level int) string {
return
strings
.
Repeat
(
indentString
,
level
)
}
func
(
ctx
ppctx
)
printValue
(
v
otto
.
Value
,
level
int
)
{
func
(
ctx
ppctx
)
printValue
(
v
otto
.
Value
,
level
int
,
inArray
bool
)
{
switch
{
case
v
.
IsObject
()
:
ctx
.
printObject
(
v
.
Object
(),
level
)
ctx
.
printObject
(
v
.
Object
(),
level
,
inArray
)
case
v
.
IsNull
()
:
specialColor
.
Print
(
"null"
)
case
v
.
IsUndefined
()
:
...
...
@@ -84,7 +92,7 @@ func (ctx ppctx) printValue(v otto.Value, level int) {
}
}
func
(
ctx
ppctx
)
printObject
(
obj
*
otto
.
Object
,
level
int
)
{
func
(
ctx
ppctx
)
printObject
(
obj
*
otto
.
Object
,
level
int
,
inArray
bool
)
{
switch
obj
.
Class
()
{
case
"Array"
:
lv
,
_
:=
obj
.
Get
(
"length"
)
...
...
@@ -101,7 +109,7 @@ func (ctx ppctx) printObject(obj *otto.Object, level int) {
for
i
:=
int64
(
0
);
i
<
len
;
i
++
{
el
,
err
:=
obj
.
Get
(
strconv
.
FormatInt
(
i
,
10
))
if
err
==
nil
{
ctx
.
printValue
(
el
,
level
+
1
)
ctx
.
printValue
(
el
,
level
+
1
,
true
)
}
if
i
<
len
-
1
{
fmt
.
Printf
(
", "
)
...
...
@@ -129,12 +137,15 @@ func (ctx ppctx) printObject(obj *otto.Object, level int) {
for
i
,
k
:=
range
keys
{
v
,
_
:=
obj
.
Get
(
k
)
fmt
.
Printf
(
"%s%s: "
,
ctx
.
indent
(
level
+
1
),
k
)
ctx
.
printValue
(
v
,
level
+
1
)
ctx
.
printValue
(
v
,
level
+
1
,
false
)
if
i
<
len
(
keys
)
-
1
{
fmt
.
Printf
(
","
)
}
fmt
.
Println
()
}
if
inArray
{
level
--
}
fmt
.
Printf
(
"%s}"
,
ctx
.
indent
(
level
))
case
"Function"
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment