Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
baas-ide
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
guxukai
baas-ide
Commits
08082e0a
Commit
08082e0a
authored
Oct 27, 2016
by
yann300
Committed by
GitHub
Oct 27, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #124 from yann300/eventManager
Use same event lib as browser solidity
parents
7a31cbf9
7d944721
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
192 additions
and
68 deletions
+192
-68
codeManager.js
src/code/codeManager.js
+3
-4
disassembler.js
src/code/disassembler.js
+1
-1
sourceLocationTracker.js
src/code/sourceLocationTracker.js
+1
-2
eventManager.js
src/lib/eventManager.js
+46
-8
ASMCode.js
src/ui/ASMCode.js
+55
-0
ButtonNavigator.js
src/ui/ButtonNavigator.js
+6
-7
CalldataPanel.js
src/ui/CalldataPanel.js
+1
-1
CallstackPanel.js
src/ui/CallstackPanel.js
+1
-1
CodeListView.js
src/ui/CodeListView.js
+2
-2
Ethdebugger.js
src/ui/Ethdebugger.js
+11
-11
FullStoragesChanges.js
src/ui/FullStoragesChanges.js
+2
-2
MemoryPanel.js
src/ui/MemoryPanel.js
+1
-1
Slider.js
src/ui/Slider.js
+2
-3
StackPanel.js
src/ui/StackPanel.js
+1
-1
StepDetail.js
src/ui/StepDetail.js
+3
-3
StepManager.js
src/ui/StepManager.js
+9
-10
StoragePanel.js
src/ui/StoragePanel.js
+1
-1
TxBrowser.js
src/ui/TxBrowser.js
+5
-5
VmDebugger.js
src/ui/VmDebugger.js
+3
-3
codeManager.js
test/codeManager.js
+2
-2
eventManager.js
test/eventManager.js
+35
-0
tests.js
test/tests.js
+1
-0
No files found.
src/code/codeManager.js
View file @
08082e0a
'use strict'
'use strict'
var
traceHelper
=
require
(
'../helpers/traceHelper'
)
var
traceHelper
=
require
(
'../helpers/traceHelper'
)
var
codeResolver
=
require
(
'./codeResolver'
)
var
codeResolver
=
require
(
'./codeResolver'
)
var
util
=
require
(
'../helpers/global'
)
var
EventManager
=
require
(
'../lib/eventManager'
)
var
EventManager
=
require
(
'../lib/eventManager'
)
/*
/*
...
@@ -14,7 +13,7 @@ var EventManager = require('../lib/eventManager')
...
@@ -14,7 +13,7 @@ var EventManager = require('../lib/eventManager')
*/
*/
function
CodeManager
(
_traceManager
)
{
function
CodeManager
(
_traceManager
)
{
util
.
extend
(
this
,
new
EventManager
()
)
this
.
event
=
new
EventManager
(
)
this
.
isLoading
=
false
this
.
isLoading
=
false
this
.
traceManager
=
_traceManager
this
.
traceManager
=
_traceManager
this
.
codeResolver
=
codeResolver
this
.
codeResolver
=
codeResolver
...
@@ -22,7 +21,7 @@ function CodeManager (_traceManager) {
...
@@ -22,7 +21,7 @@ function CodeManager (_traceManager) {
CodeManager
.
prototype
.
resolveStep
=
function
(
stepIndex
,
tx
)
{
CodeManager
.
prototype
.
resolveStep
=
function
(
stepIndex
,
tx
)
{
if
(
stepIndex
<
0
)
return
if
(
stepIndex
<
0
)
return
this
.
trigger
(
'resolvingStep'
)
this
.
event
.
trigger
(
'resolvingStep'
)
var
self
=
this
var
self
=
this
if
(
stepIndex
===
0
)
{
if
(
stepIndex
===
0
)
{
self
.
retrieveCodeAndTrigger
(
tx
.
to
,
stepIndex
,
tx
)
self
.
retrieveCodeAndTrigger
(
tx
.
to
,
stepIndex
,
tx
)
...
@@ -72,7 +71,7 @@ CodeManager.prototype.retrieveIndexAndTrigger = function (address, step, code) {
...
@@ -72,7 +71,7 @@ CodeManager.prototype.retrieveIndexAndTrigger = function (address, step, code) {
var
self
=
this
var
self
=
this
this
.
getInstructionIndex
(
address
,
step
,
function
(
error
,
result
)
{
this
.
getInstructionIndex
(
address
,
step
,
function
(
error
,
result
)
{
if
(
!
error
)
{
if
(
!
error
)
{
self
.
trigger
(
'changed'
,
[
code
,
address
,
result
])
self
.
event
.
trigger
(
'changed'
,
[
code
,
address
,
result
])
}
else
{
}
else
{
console
.
log
(
error
)
console
.
log
(
error
)
}
}
...
...
src/code/disassembler.js
View file @
08082e0a
...
@@ -7,7 +7,7 @@ var createExpressions = function (instructions) {
...
@@ -7,7 +7,7 @@ var createExpressions = function (instructions) {
var
expressions
=
[]
var
expressions
=
[]
var
labels
=
0
var
labels
=
0
for
(
var
i
=
0
;
i
<
instructions
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
instructions
.
length
;
i
++
)
{
let
expr
=
instructions
[
i
]
var
expr
=
instructions
[
i
]
expr
.
functional
=
false
expr
.
functional
=
false
if
(
expr
.
name
===
'JUMPDEST'
)
{
if
(
expr
.
name
===
'JUMPDEST'
)
{
expr
.
label
=
'label'
+
(
++
labels
)
expr
.
label
=
'label'
+
(
++
labels
)
...
...
src/code/sourceLocationTracker.js
View file @
08082e0a
'use strict'
'use strict'
var
EventManager
=
require
(
'../lib/eventManager'
)
var
EventManager
=
require
(
'../lib/eventManager'
)
var
util
=
require
(
'../helpers/global'
)
var
helper
=
require
(
'../helpers/traceHelper'
)
var
helper
=
require
(
'../helpers/traceHelper'
)
var
SourceMappingDecoder
=
require
(
'../util/sourceMappingDecoder'
)
var
SourceMappingDecoder
=
require
(
'../util/sourceMappingDecoder'
)
...
@@ -9,7 +8,7 @@ var SourceMappingDecoder = require('../util/sourceMappingDecoder')
...
@@ -9,7 +8,7 @@ var SourceMappingDecoder = require('../util/sourceMappingDecoder')
*/
*/
function
SourceLocationTracker
(
_codeManager
)
{
function
SourceLocationTracker
(
_codeManager
)
{
this
.
codeManager
=
_codeManager
this
.
codeManager
=
_codeManager
util
.
extend
(
this
,
new
EventManager
()
)
this
.
event
=
new
EventManager
(
)
this
.
sourceMappingDecoder
=
new
SourceMappingDecoder
()
this
.
sourceMappingDecoder
=
new
SourceMappingDecoder
()
}
}
...
...
src/lib/eventManager.js
View file @
08082e0a
'use strict'
'use strict'
function
EventManager
()
{
function
eventManager
()
{
this
.
registered
=
{}
this
.
registered
=
{}
this
.
anonymous
=
{}
}
}
EventManager
.
prototype
.
unregister
=
function
(
eventName
,
obj
)
{
/*
* Unregister a listenner.
* Note that if obj is a function. the unregistration will be applied to the dummy obj {}.
*
* @param {String} eventName - the event name
* @param {Object or Func} obj - object that will listen on this event
* @param {Func} func - function of the listenners that will be executed
*/
eventManager
.
prototype
.
unregister
=
function
(
eventName
,
obj
,
func
)
{
if
(
!
this
.
registered
[
eventName
])
{
return
}
if
(
obj
instanceof
Function
)
{
func
=
obj
obj
=
this
.
anonymous
}
for
(
var
reg
in
this
.
registered
[
eventName
])
{
for
(
var
reg
in
this
.
registered
[
eventName
])
{
if
(
this
.
registered
[
eventName
][
reg
]
&&
this
.
registered
[
eventName
][
reg
].
obj
===
obj
)
{
if
(
this
.
registered
[
eventName
][
reg
]
.
obj
===
obj
&&
this
.
registered
[
eventName
][
reg
].
func
===
func
)
{
this
.
registered
[
eventName
].
splice
(
reg
,
1
)
this
.
registered
[
eventName
].
splice
(
reg
,
1
)
return
}
}
}
}
}
}
EventManager
.
prototype
.
register
=
function
(
eventName
,
obj
,
func
)
{
/*
* Register a new listenner.
* Note that if obj is a function, the function registration will be associated with the dummy object {}
*
* @param {String} eventName - the event name
* @param {Object or Func} obj - object that will listen on this event
* @param {Func} func - function of the listenners that will be executed
*/
eventManager
.
prototype
.
register
=
function
(
eventName
,
obj
,
func
)
{
if
(
!
this
.
registered
[
eventName
])
{
if
(
!
this
.
registered
[
eventName
])
{
this
.
registered
[
eventName
]
=
[]
this
.
registered
[
eventName
]
=
[]
}
}
if
(
obj
instanceof
Function
)
{
func
=
obj
obj
=
this
.
anonymous
}
this
.
registered
[
eventName
].
push
({
this
.
registered
[
eventName
].
push
({
obj
:
obj
,
obj
:
obj
,
func
:
func
func
:
func
})
})
}
}
EventManager
.
prototype
.
trigger
=
function
(
eventName
,
args
)
{
/*
* trigger event.
* Every listenner have their associated function executed
*
* @param {String} eventName - the event name
* @param {Array}j - argument that will be passed to the exectued function.
*/
eventManager
.
prototype
.
trigger
=
function
(
eventName
,
args
)
{
if
(
!
this
.
registered
[
eventName
])
{
return
}
for
(
var
listener
in
this
.
registered
[
eventName
])
{
for
(
var
listener
in
this
.
registered
[
eventName
])
{
var
l
=
this
.
registered
[
eventName
][
listener
]
var
l
=
this
.
registered
[
eventName
][
listener
]
l
.
func
.
apply
(
l
.
obj
,
args
)
l
.
func
.
apply
(
l
.
obj
===
this
.
anonymous
?
{}
:
l
.
obj
,
args
)
}
}
}
}
module
.
exports
=
E
ventManager
module
.
exports
=
e
ventManager
src/ui/ASMCode.js
0 → 100644
View file @
08082e0a
'use strict'
var
style
=
require
(
'./styles/basicStyles'
)
var
yo
=
require
(
'yo-yo'
)
var
ui
=
require
(
'../helpers/ui'
)
function
ASMCode
(
_parent
,
_codeManager
)
{
this
.
parent
=
_parent
this
.
codeManager
=
_codeManager
this
.
code
this
.
address
this
.
codeView
this
.
init
()
}
ASMCode
.
prototype
.
render
=
function
()
{
var
view
=
(
yo
`<select size='10' id='asmitems' ref='itemsList' style=
${
ui
.
formatCss
(
style
.
instructionsList
)}
>
${
this
.
codeView
}
</select>`
)
if
(
!
this
.
view
)
{
this
.
view
=
view
}
return
view
}
ASMCode
.
prototype
.
init
=
function
()
{
this
.
codeManager
.
event
.
register
(
'changed'
,
this
,
this
.
changed
)
}
ASMCode
.
prototype
.
indexChanged
=
function
(
index
)
{
document
.
getElementById
(
'asmitems'
).
value
=
index
}
ASMCode
.
prototype
.
changed
=
function
(
code
,
address
,
index
)
{
if
(
this
.
address
!==
address
)
{
this
.
code
=
code
this
.
address
=
address
this
.
renderAssemblyItems
()
yo
.
update
(
this
.
view
,
this
.
render
())
}
this
.
indexChanged
(
index
)
}
ASMCode
.
prototype
.
renderAssemblyItems
=
function
()
{
if
(
this
.
code
)
{
this
.
codeView
=
this
.
code
.
map
(
function
(
item
,
i
)
{
return
yo
`<option key=
${
i
}
value=
${
i
}
>
${
item
}
</option>`
})
return
this
.
codeView
}
}
module
.
exports
=
ASMCode
src/ui/ButtonNavigator.js
View file @
08082e0a
'use strict'
'use strict'
var
util
=
require
(
'../helpers/global'
)
var
EventManager
=
require
(
'../lib/eventManager'
)
var
EventManager
=
require
(
'../lib/eventManager'
)
var
style
=
require
(
'./styles/basicStyles'
)
var
style
=
require
(
'./styles/basicStyles'
)
var
ui
=
require
(
'../helpers/ui'
)
var
ui
=
require
(
'../helpers/ui'
)
var
yo
=
require
(
'yo-yo'
)
var
yo
=
require
(
'yo-yo'
)
function
ButtonNavigator
(
_traceManager
)
{
function
ButtonNavigator
(
_traceManager
)
{
util
.
extend
(
this
,
new
EventManager
()
)
this
.
event
=
new
EventManager
(
)
this
.
intoBackDisabled
=
true
this
.
intoBackDisabled
=
true
this
.
overBackDisabled
=
true
this
.
overBackDisabled
=
true
this
.
intoForwardDisabled
=
true
this
.
intoForwardDisabled
=
true
...
@@ -23,19 +22,19 @@ module.exports = ButtonNavigator
...
@@ -23,19 +22,19 @@ module.exports = ButtonNavigator
ButtonNavigator
.
prototype
.
render
=
function
()
{
ButtonNavigator
.
prototype
.
render
=
function
()
{
var
self
=
this
var
self
=
this
var
view
=
yo
`<div>
var
view
=
yo
`<div>
<button id='overback' style=
${
ui
.
formatCss
(
style
.
button
)}
onclick=
${
function
()
{
self
.
trigger
(
'stepOverBack'
)
}
} disabled=
${
this
.
overBackDisabled
}
>
<button id='overback' style=
${
ui
.
formatCss
(
style
.
button
)}
onclick=
${
function
()
{
self
.
event
.
trigger
(
'stepOverBack'
)
}
} disabled=
${
this
.
overBackDisabled
}
>
Step Over Back
Step Over Back
</button>
</button>
<button id='intoback' style=
${
ui
.
formatCss
(
style
.
button
)}
onclick=
${
function
()
{
self
.
trigger
(
'stepIntoBack'
)
}
} disabled=
${
this
.
intoBackDisabled
}
>
<button id='intoback' style=
${
ui
.
formatCss
(
style
.
button
)}
onclick=
${
function
()
{
self
.
event
.
trigger
(
'stepIntoBack'
)
}
} disabled=
${
this
.
intoBackDisabled
}
>
Step Into Back
Step Into Back
</button>
</button>
<button id='intoforward' style=
${
ui
.
formatCss
(
style
.
button
)}
onclick=
${
function
()
{
self
.
trigger
(
'stepIntoForward'
)
}
} disabled=
${
this
.
intoForwardDisabled
}
>
<button id='intoforward' style=
${
ui
.
formatCss
(
style
.
button
)}
onclick=
${
function
()
{
self
.
event
.
trigger
(
'stepIntoForward'
)
}
} disabled=
${
this
.
intoForwardDisabled
}
>
Step Into Forward
Step Into Forward
</button>
</button>
<button id='overforward' style=
${
ui
.
formatCss
(
style
.
button
)}
onclick=
${
function
()
{
self
.
trigger
(
'stepOverForward'
)
}
} disabled=
${
this
.
overForwardDisabled
}
>
<button id='overforward' style=
${
ui
.
formatCss
(
style
.
button
)}
onclick=
${
function
()
{
self
.
event
.
trigger
(
'stepOverForward'
)
}
} disabled=
${
this
.
overForwardDisabled
}
>
Step Over Forward
Step Over Forward
</button>
</button>
<button id='nextcall' style=
${
ui
.
formatCss
(
style
.
button
)}
onclick=
${
function
()
{
self
.
trigger
(
'jumpNextCall'
)
}
} disabled=
${
this
.
nextCallDisabled
}
>
<button id='nextcall' style=
${
ui
.
formatCss
(
style
.
button
)}
onclick=
${
function
()
{
self
.
event
.
trigger
(
'jumpNextCall'
)
}
} disabled=
${
this
.
nextCallDisabled
}
>
Jump Next Call
Jump Next Call
</button>
</button>
</div>`
</div>`
...
...
src/ui/CalldataPanel.js
View file @
08082e0a
...
@@ -15,7 +15,7 @@ CalldataPanel.prototype.render = function () {
...
@@ -15,7 +15,7 @@ CalldataPanel.prototype.render = function () {
CalldataPanel
.
prototype
.
init
=
function
()
{
CalldataPanel
.
prototype
.
init
=
function
()
{
var
self
=
this
var
self
=
this
this
.
parent
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
this
.
parent
.
event
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
if
(
index
<
0
)
return
if
(
index
<
0
)
return
if
(
self
.
parent
.
currentStepIndex
!==
index
)
return
if
(
self
.
parent
.
currentStepIndex
!==
index
)
return
...
...
src/ui/CallstackPanel.js
View file @
08082e0a
...
@@ -15,7 +15,7 @@ CallstackPanel.prototype.render = function () {
...
@@ -15,7 +15,7 @@ CallstackPanel.prototype.render = function () {
CallstackPanel
.
prototype
.
init
=
function
()
{
CallstackPanel
.
prototype
.
init
=
function
()
{
var
self
=
this
var
self
=
this
this
.
parent
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
this
.
parent
.
event
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
if
(
index
<
0
)
return
if
(
index
<
0
)
return
if
(
self
.
parent
.
currentStepIndex
!==
index
)
return
if
(
self
.
parent
.
currentStepIndex
!==
index
)
return
...
...
src/ui/CodeListView.js
View file @
08082e0a
...
@@ -21,8 +21,8 @@ CodeListView.prototype.render = function () {
...
@@ -21,8 +21,8 @@ CodeListView.prototype.render = function () {
CodeListView
.
prototype
.
init
=
function
()
{
CodeListView
.
prototype
.
init
=
function
()
{
var
self
=
this
var
self
=
this
this
.
codeManager
.
register
(
'changed'
,
this
,
this
.
changed
)
this
.
codeManager
.
event
.
register
(
'changed'
,
this
,
this
.
changed
)
this
.
parent
.
register
(
'traceUnloaded'
,
this
,
function
()
{
this
.
parent
.
event
.
register
(
'traceUnloaded'
,
this
,
function
()
{
self
.
changed
([],
''
,
-
1
)
self
.
changed
([],
''
,
-
1
)
})
})
}
}
...
...
src/ui/Ethdebugger.js
View file @
08082e0a
...
@@ -14,7 +14,7 @@ var CodeManager = require('../code/codeManager')
...
@@ -14,7 +14,7 @@ var CodeManager = require('../code/codeManager')
var
SourceLocationTracker
=
require
(
'../code/sourceLocationTracker'
)
var
SourceLocationTracker
=
require
(
'../code/sourceLocationTracker'
)
function
Ethdebugger
()
{
function
Ethdebugger
()
{
util
.
extend
(
this
,
new
EventManager
()
)
this
.
event
=
new
EventManager
(
)
this
.
currentStepIndex
=
-
1
this
.
currentStepIndex
=
-
1
this
.
tx
this
.
tx
...
@@ -29,22 +29,22 @@ function Ethdebugger () {
...
@@ -29,22 +29,22 @@ function Ethdebugger () {
this
.
sourceLocationTracker
=
new
SourceLocationTracker
(
this
.
codeManager
)
this
.
sourceLocationTracker
=
new
SourceLocationTracker
(
this
.
codeManager
)
var
self
=
this
var
self
=
this
this
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
this
.
event
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
self
.
codeManager
.
resolveStep
(
index
,
self
.
tx
)
self
.
codeManager
.
resolveStep
(
index
,
self
.
tx
)
})
})
this
.
txBrowser
=
new
TxBrowser
(
this
)
this
.
txBrowser
=
new
TxBrowser
(
this
)
this
.
txBrowser
.
register
(
'newTxLoading'
,
this
,
function
()
{
this
.
txBrowser
.
event
.
register
(
'newTxLoading'
,
this
,
function
()
{
self
.
unLoad
()
self
.
unLoad
()
})
})
this
.
txBrowser
.
register
(
'newTraceRequested'
,
this
,
function
(
blockNumber
,
txIndex
,
tx
)
{
this
.
txBrowser
.
event
.
register
(
'newTraceRequested'
,
this
,
function
(
blockNumber
,
txIndex
,
tx
)
{
self
.
startDebugging
(
blockNumber
,
txIndex
,
tx
)
self
.
startDebugging
(
blockNumber
,
txIndex
,
tx
)
})
})
this
.
txBrowser
.
register
(
'unloadRequested'
,
this
,
function
(
blockNumber
,
txIndex
,
tx
)
{
this
.
txBrowser
.
event
.
register
(
'unloadRequested'
,
this
,
function
(
blockNumber
,
txIndex
,
tx
)
{
self
.
unLoad
()
self
.
unLoad
()
})
})
this
.
stepManager
=
new
StepManager
(
this
,
this
.
traceManager
)
this
.
stepManager
=
new
StepManager
(
this
,
this
.
traceManager
)
this
.
stepManager
.
register
(
'stepChanged'
,
this
,
function
(
stepIndex
)
{
this
.
stepManager
.
event
.
register
(
'stepChanged'
,
this
,
function
(
stepIndex
)
{
self
.
stepChanged
(
stepIndex
)
self
.
stepChanged
(
stepIndex
)
})
})
this
.
vmDebugger
=
new
VmDebugger
(
this
,
this
.
traceManager
,
this
.
codeManager
)
this
.
vmDebugger
=
new
VmDebugger
(
this
,
this
.
traceManager
,
this
.
codeManager
)
...
@@ -56,7 +56,7 @@ Ethdebugger.prototype.web3 = function () {
...
@@ -56,7 +56,7 @@ Ethdebugger.prototype.web3 = function () {
Ethdebugger
.
prototype
.
addProvider
=
function
(
type
,
obj
)
{
Ethdebugger
.
prototype
.
addProvider
=
function
(
type
,
obj
)
{
this
.
web3Providers
.
addProvider
(
type
,
obj
)
this
.
web3Providers
.
addProvider
(
type
,
obj
)
this
.
trigger
(
'providerAdded'
,
[
type
])
this
.
event
.
trigger
(
'providerAdded'
,
[
type
])
}
}
Ethdebugger
.
prototype
.
switchProvider
=
function
(
type
)
{
Ethdebugger
.
prototype
.
switchProvider
=
function
(
type
)
{
...
@@ -66,7 +66,7 @@ Ethdebugger.prototype.switchProvider = function (type) {
...
@@ -66,7 +66,7 @@ Ethdebugger.prototype.switchProvider = function (type) {
console
.
log
(
'provider '
+
type
+
' not defined'
)
console
.
log
(
'provider '
+
type
+
' not defined'
)
}
else
{
}
else
{
util
.
web3
=
obj
util
.
web3
=
obj
self
.
trigger
(
'providerChanged'
,
[
type
])
self
.
event
.
trigger
(
'providerChanged'
,
[
type
])
}
}
})
})
}
}
...
@@ -97,12 +97,12 @@ Ethdebugger.prototype.render = function () {
...
@@ -97,12 +97,12 @@ Ethdebugger.prototype.render = function () {
Ethdebugger
.
prototype
.
unLoad
=
function
()
{
Ethdebugger
.
prototype
.
unLoad
=
function
()
{
this
.
traceManager
.
init
()
this
.
traceManager
.
init
()
this
.
stepManager
.
reset
()
this
.
stepManager
.
reset
()
this
.
trigger
(
'traceUnloaded'
)
this
.
event
.
trigger
(
'traceUnloaded'
)
}
}
Ethdebugger
.
prototype
.
stepChanged
=
function
(
stepIndex
)
{
Ethdebugger
.
prototype
.
stepChanged
=
function
(
stepIndex
)
{
this
.
currentStepIndex
=
stepIndex
this
.
currentStepIndex
=
stepIndex
this
.
trigger
(
'indexChanged'
,
[
stepIndex
])
this
.
event
.
trigger
(
'indexChanged'
,
[
stepIndex
])
}
}
Ethdebugger
.
prototype
.
startDebugging
=
function
(
blockNumber
,
txIndex
,
tx
)
{
Ethdebugger
.
prototype
.
startDebugging
=
function
(
blockNumber
,
txIndex
,
tx
)
{
...
@@ -119,7 +119,7 @@ Ethdebugger.prototype.startDebugging = function (blockNumber, txIndex, tx) {
...
@@ -119,7 +119,7 @@ Ethdebugger.prototype.startDebugging = function (blockNumber, txIndex, tx) {
if
(
result
)
{
if
(
result
)
{
self
.
statusMessage
=
''
self
.
statusMessage
=
''
yo
.
update
(
self
.
view
,
self
.
render
())
yo
.
update
(
self
.
view
,
self
.
render
())
self
.
trigger
(
'newTraceLoaded'
)
self
.
event
.
trigger
(
'newTraceLoaded'
)
}
else
{
}
else
{
self
.
statusMessage
=
error
self
.
statusMessage
=
error
yo
.
update
(
self
.
view
,
self
.
render
())
yo
.
update
(
self
.
view
,
self
.
render
())
...
...
src/ui/FullStoragesChanges.js
View file @
08082e0a
...
@@ -22,7 +22,7 @@ FullStoragesChanges.prototype.render = function () {
...
@@ -22,7 +22,7 @@ FullStoragesChanges.prototype.render = function () {
FullStoragesChanges
.
prototype
.
init
=
function
()
{
FullStoragesChanges
.
prototype
.
init
=
function
()
{
var
self
=
this
var
self
=
this
this
.
parent
.
register
(
'newTraceLoaded'
,
this
,
function
(
length
)
{
this
.
parent
.
event
.
register
(
'newTraceLoaded'
,
this
,
function
(
length
)
{
self
.
panels
=
[]
self
.
panels
=
[]
self
.
traceManager
.
getAddresses
(
function
(
error
,
addresses
)
{
self
.
traceManager
.
getAddresses
(
function
(
error
,
addresses
)
{
if
(
!
error
)
{
if
(
!
error
)
{
...
@@ -38,7 +38,7 @@ FullStoragesChanges.prototype.init = function () {
...
@@ -38,7 +38,7 @@ FullStoragesChanges.prototype.init = function () {
})
})
})
})
this
.
parent
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
this
.
parent
.
event
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
if
(
index
<
0
)
return
if
(
index
<
0
)
return
if
(
self
.
parent
.
currentStepIndex
!==
index
)
return
if
(
self
.
parent
.
currentStepIndex
!==
index
)
return
...
...
src/ui/MemoryPanel.js
View file @
08082e0a
...
@@ -16,7 +16,7 @@ MemoryPanel.prototype.render = function () {
...
@@ -16,7 +16,7 @@ MemoryPanel.prototype.render = function () {
MemoryPanel
.
prototype
.
init
=
function
()
{
MemoryPanel
.
prototype
.
init
=
function
()
{
var
self
=
this
var
self
=
this
this
.
parent
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
this
.
parent
.
event
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
if
(
index
<
0
)
return
if
(
index
<
0
)
return
if
(
self
.
parent
.
currentStepIndex
!==
index
)
return
if
(
self
.
parent
.
currentStepIndex
!==
index
)
return
...
...
src/ui/Slider.js
View file @
08082e0a
'use strict'
'use strict'
var
style
=
require
(
'./styles/sliderStyles'
)
var
style
=
require
(
'./styles/sliderStyles'
)
var
util
=
require
(
'../helpers/global'
)
var
EventManager
=
require
(
'../lib/eventManager'
)
var
EventManager
=
require
(
'../lib/eventManager'
)
var
yo
=
require
(
'yo-yo'
)
var
yo
=
require
(
'yo-yo'
)
var
ui
=
require
(
'../helpers/ui'
)
var
ui
=
require
(
'../helpers/ui'
)
function
Slider
(
_traceManager
)
{
function
Slider
(
_traceManager
)
{
util
.
extend
(
this
,
new
EventManager
()
)
this
.
event
=
new
EventManager
(
)
this
.
traceManager
=
_traceManager
this
.
traceManager
=
_traceManager
this
.
max
this
.
max
this
.
disabled
=
true
this
.
disabled
=
true
...
@@ -48,7 +47,7 @@ Slider.prototype.onChange = function (event) {
...
@@ -48,7 +47,7 @@ Slider.prototype.onChange = function (event) {
var
value
=
parseInt
(
document
.
getElementById
(
'slider'
).
value
)
var
value
=
parseInt
(
document
.
getElementById
(
'slider'
).
value
)
if
(
value
===
this
.
previousValue
)
return
if
(
value
===
this
.
previousValue
)
return
this
.
previousValue
=
value
this
.
previousValue
=
value
this
.
trigger
(
'moved'
,
[
value
])
this
.
event
.
trigger
(
'moved'
,
[
value
])
}
}
Slider
.
prototype
.
setValue
=
function
(
value
)
{
Slider
.
prototype
.
setValue
=
function
(
value
)
{
...
...
src/ui/StackPanel.js
View file @
08082e0a
...
@@ -16,7 +16,7 @@ StackPanel.prototype.render = function () {
...
@@ -16,7 +16,7 @@ StackPanel.prototype.render = function () {
StackPanel
.
prototype
.
init
=
function
()
{
StackPanel
.
prototype
.
init
=
function
()
{
var
self
=
this
var
self
=
this
this
.
parent
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
this
.
parent
.
event
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
if
(
index
<
0
)
return
if
(
index
<
0
)
return
if
(
self
.
parent
.
currentStepIndex
!==
index
)
return
if
(
self
.
parent
.
currentStepIndex
!==
index
)
return
...
...
src/ui/StepDetail.js
View file @
08082e0a
...
@@ -19,17 +19,17 @@ StepDetail.prototype.render = function () {
...
@@ -19,17 +19,17 @@ StepDetail.prototype.render = function () {
StepDetail
.
prototype
.
init
=
function
()
{
StepDetail
.
prototype
.
init
=
function
()
{
var
self
=
this
var
self
=
this
this
.
parent
.
register
(
'traceUnloaded'
,
this
,
function
()
{
this
.
parent
.
event
.
register
(
'traceUnloaded'
,
this
,
function
()
{
self
.
detail
=
initDetail
()
self
.
detail
=
initDetail
()
self
.
basicPanel
.
update
(
self
.
detail
)
self
.
basicPanel
.
update
(
self
.
detail
)
})
})
this
.
parent
.
register
(
'newTraceLoaded'
,
this
,
function
()
{
this
.
parent
.
event
.
register
(
'newTraceLoaded'
,
this
,
function
()
{
self
.
detail
=
initDetail
()
self
.
detail
=
initDetail
()
self
.
basicPanel
.
update
(
self
.
detail
)
self
.
basicPanel
.
update
(
self
.
detail
)
})
})
this
.
parent
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
this
.
parent
.
event
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
if
(
index
<
0
)
return
if
(
index
<
0
)
return
self
.
detail
[
'vm trace step'
]
=
index
self
.
detail
[
'vm trace step'
]
=
index
...
...
src/ui/StepManager.js
View file @
08082e0a
'use strict'
'use strict'
var
ButtonNavigator
=
require
(
'./ButtonNavigator'
)
var
ButtonNavigator
=
require
(
'./ButtonNavigator'
)
var
Slider
=
require
(
'./Slider'
)
var
Slider
=
require
(
'./Slider'
)
var
util
=
require
(
'../helpers/global'
)
var
EventManager
=
require
(
'../lib/eventManager'
)
var
EventManager
=
require
(
'../lib/eventManager'
)
var
yo
=
require
(
'yo-yo'
)
var
yo
=
require
(
'yo-yo'
)
function
StepManager
(
_parent
,
_traceManager
)
{
function
StepManager
(
_parent
,
_traceManager
)
{
util
.
extend
(
this
,
new
EventManager
()
)
this
.
event
=
new
EventManager
(
)
this
.
parent
=
_parent
this
.
parent
=
_parent
this
.
traceManager
=
_traceManager
this
.
traceManager
=
_traceManager
var
self
=
this
var
self
=
this
this
.
parent
.
register
(
'newTraceLoaded'
,
this
,
function
()
{
this
.
parent
.
event
.
register
(
'newTraceLoaded'
,
this
,
function
()
{
self
.
traceManager
.
getLength
(
function
(
error
,
length
)
{
self
.
traceManager
.
getLength
(
function
(
error
,
length
)
{
if
(
error
)
{
if
(
error
)
{
console
.
log
(
error
)
console
.
log
(
error
)
...
@@ -23,24 +22,24 @@ function StepManager (_parent, _traceManager) {
...
@@ -23,24 +22,24 @@ function StepManager (_parent, _traceManager) {
})
})
this
.
slider
=
new
Slider
(
this
.
traceManager
)
this
.
slider
=
new
Slider
(
this
.
traceManager
)
this
.
slider
.
register
(
'moved'
,
this
,
function
(
step
)
{
this
.
slider
.
event
.
register
(
'moved'
,
this
,
function
(
step
)
{
self
.
sliderMoved
(
step
)
self
.
sliderMoved
(
step
)
})
})
this
.
buttonNavigator
=
new
ButtonNavigator
(
this
.
traceManager
)
this
.
buttonNavigator
=
new
ButtonNavigator
(
this
.
traceManager
)
this
.
buttonNavigator
.
register
(
'stepIntoBack'
,
this
,
function
()
{
this
.
buttonNavigator
.
event
.
register
(
'stepIntoBack'
,
this
,
function
()
{
self
.
stepIntoBack
()
self
.
stepIntoBack
()
})
})
this
.
buttonNavigator
.
register
(
'stepIntoForward'
,
this
,
function
()
{
this
.
buttonNavigator
.
event
.
register
(
'stepIntoForward'
,
this
,
function
()
{
self
.
stepIntoForward
()
self
.
stepIntoForward
()
})
})
this
.
buttonNavigator
.
register
(
'stepOverBack'
,
this
,
function
()
{
this
.
buttonNavigator
.
event
.
register
(
'stepOverBack'
,
this
,
function
()
{
self
.
stepOverBack
()
self
.
stepOverBack
()
})
})
this
.
buttonNavigator
.
register
(
'stepOverForward'
,
this
,
function
()
{
this
.
buttonNavigator
.
event
.
register
(
'stepOverForward'
,
this
,
function
()
{
self
.
stepOverForward
()
self
.
stepOverForward
()
})
})
this
.
buttonNavigator
.
register
(
'jumpNextCall'
,
this
,
function
()
{
this
.
buttonNavigator
.
event
.
register
(
'jumpNextCall'
,
this
,
function
()
{
self
.
jumpNextCall
()
self
.
jumpNextCall
()
})
})
}
}
...
@@ -130,7 +129,7 @@ StepManager.prototype.jumpNextCall = function () {
...
@@ -130,7 +129,7 @@ StepManager.prototype.jumpNextCall = function () {
StepManager
.
prototype
.
changeState
=
function
(
step
)
{
StepManager
.
prototype
.
changeState
=
function
(
step
)
{
this
.
currentStepIndex
=
step
this
.
currentStepIndex
=
step
this
.
buttonNavigator
.
stepChanged
(
step
)
this
.
buttonNavigator
.
stepChanged
(
step
)
this
.
trigger
(
'stepChanged'
,
[
step
])
this
.
event
.
trigger
(
'stepChanged'
,
[
step
])
}
}
module
.
exports
=
StepManager
module
.
exports
=
StepManager
src/ui/StoragePanel.js
View file @
08082e0a
...
@@ -17,7 +17,7 @@ StoragePanel.prototype.render = function () {
...
@@ -17,7 +17,7 @@ StoragePanel.prototype.render = function () {
StoragePanel
.
prototype
.
init
=
function
()
{
StoragePanel
.
prototype
.
init
=
function
()
{
var
self
=
this
var
self
=
this
this
.
parent
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
this
.
parent
.
event
.
register
(
'indexChanged'
,
this
,
function
(
index
)
{
if
(
self
.
disabled
)
return
if
(
self
.
disabled
)
return
if
(
index
<
0
)
return
if
(
index
<
0
)
return
if
(
self
.
parent
.
currentStepIndex
!==
index
)
return
if
(
self
.
parent
.
currentStepIndex
!==
index
)
return
...
...
src/ui/TxBrowser.js
View file @
08082e0a
...
@@ -8,7 +8,7 @@ var init = require('../helpers/init')
...
@@ -8,7 +8,7 @@ var init = require('../helpers/init')
var
DropdownPanel
=
require
(
'./DropdownPanel'
)
var
DropdownPanel
=
require
(
'./DropdownPanel'
)
function
TxBrowser
(
_parent
)
{
function
TxBrowser
(
_parent
)
{
util
.
extend
(
this
,
new
EventManager
()
)
this
.
event
=
new
EventManager
(
)
this
.
blockNumber
this
.
blockNumber
this
.
txNumber
this
.
txNumber
...
@@ -17,7 +17,7 @@ function TxBrowser (_parent) {
...
@@ -17,7 +17,7 @@ function TxBrowser (_parent) {
this
.
basicPanel
=
new
DropdownPanel
(
'Transaction'
)
this
.
basicPanel
=
new
DropdownPanel
(
'Transaction'
)
this
.
basicPanel
.
data
=
{}
this
.
basicPanel
.
data
=
{}
var
self
=
this
var
self
=
this
_parent
.
register
(
'providerChanged'
,
this
,
function
(
provider
)
{
_parent
.
event
.
register
(
'providerChanged'
,
this
,
function
(
provider
)
{
self
.
displayConnectionSetting
=
provider
===
'INTERNAL'
self
.
displayConnectionSetting
=
provider
===
'INTERNAL'
self
.
setDefaultValues
()
self
.
setDefaultValues
()
if
(
self
.
view
)
{
if
(
self
.
view
)
{
...
@@ -44,7 +44,7 @@ TxBrowser.prototype.submit = function () {
...
@@ -44,7 +44,7 @@ TxBrowser.prototype.submit = function () {
if
(
!
this
.
txNumber
)
{
if
(
!
this
.
txNumber
)
{
return
return
}
}
this
.
trigger
(
'newTxLoading'
,
[
this
.
blockNumber
,
this
.
txNumber
])
this
.
event
.
trigger
(
'newTxLoading'
,
[
this
.
blockNumber
,
this
.
txNumber
])
try
{
try
{
var
self
=
this
var
self
=
this
if
(
this
.
txNumber
.
indexOf
(
'0x'
)
!==
-
1
)
{
if
(
this
.
txNumber
.
indexOf
(
'0x'
)
!==
-
1
)
{
...
@@ -74,7 +74,7 @@ TxBrowser.prototype.update = function (error, tx) {
...
@@ -74,7 +74,7 @@ TxBrowser.prototype.update = function (error, tx) {
info
.
from
=
tx
.
from
info
.
from
=
tx
.
from
info
.
to
=
tx
.
to
info
.
to
=
tx
.
to
info
.
hash
=
tx
.
hash
info
.
hash
=
tx
.
hash
this
.
trigger
(
'newTraceRequested'
,
[
this
.
blockNumber
,
this
.
txNumber
,
tx
])
this
.
event
.
trigger
(
'newTraceRequested'
,
[
this
.
blockNumber
,
this
.
txNumber
,
tx
])
}
else
{
}
else
{
var
mes
=
'<not found>'
var
mes
=
'<not found>'
info
.
from
=
mes
info
.
from
=
mes
...
@@ -124,7 +124,7 @@ TxBrowser.prototype.load = function (txHash) {
...
@@ -124,7 +124,7 @@ TxBrowser.prototype.load = function (txHash) {
}
}
TxBrowser
.
prototype
.
unload
=
function
(
txHash
)
{
TxBrowser
.
prototype
.
unload
=
function
(
txHash
)
{
this
.
trigger
(
'unloadRequested'
)
this
.
event
.
trigger
(
'unloadRequested'
)
this
.
init
()
this
.
init
()
}
}
...
...
src/ui/VmDebugger.js
View file @
08082e0a
...
@@ -22,7 +22,7 @@ function VmDebugger (_parent, _traceManager, _codeManager) {
...
@@ -22,7 +22,7 @@ function VmDebugger (_parent, _traceManager, _codeManager) {
/* Return values - */
/* Return values - */
this
.
returnValuesPanel
=
new
DropdownPanel
(
'Return Value'
)
this
.
returnValuesPanel
=
new
DropdownPanel
(
'Return Value'
)
this
.
returnValuesPanel
.
data
=
{}
this
.
returnValuesPanel
.
data
=
{}
_parent
.
register
(
'indexChanged'
,
this
.
returnValuesPanel
,
function
(
index
)
{
_parent
.
event
.
register
(
'indexChanged'
,
this
.
returnValuesPanel
,
function
(
index
)
{
var
self
=
this
var
self
=
this
_traceManager
.
getReturnValue
(
index
,
function
(
error
,
returnValue
)
{
_traceManager
.
getReturnValue
(
index
,
function
(
error
,
returnValue
)
{
if
(
error
)
{
if
(
error
)
{
...
@@ -39,10 +39,10 @@ function VmDebugger (_parent, _traceManager, _codeManager) {
...
@@ -39,10 +39,10 @@ function VmDebugger (_parent, _traceManager, _codeManager) {
this
.
view
this
.
view
var
self
=
this
var
self
=
this
_parent
.
register
(
'newTraceLoaded'
,
this
,
function
()
{
_parent
.
event
.
register
(
'newTraceLoaded'
,
this
,
function
()
{
self
.
view
.
style
.
display
=
'block'
self
.
view
.
style
.
display
=
'block'
})
})
_parent
.
register
(
'traceUnloaded'
,
this
,
function
()
{
_parent
.
event
.
register
(
'traceUnloaded'
,
this
,
function
()
{
self
.
view
.
style
.
display
=
'none'
self
.
view
.
style
.
display
=
'none'
})
})
}
}
...
...
test/codeManager.js
View file @
08082e0a
...
@@ -40,7 +40,7 @@ function continueTesting (t, codeManager) {
...
@@ -40,7 +40,7 @@ function continueTesting (t, codeManager) {
t
.
test
(
'CodeManager.resolveStep'
,
function
(
st
)
{
t
.
test
(
'CodeManager.resolveStep'
,
function
(
st
)
{
st
.
plan
(
6
)
st
.
plan
(
6
)
codeManager
.
register
(
'changed'
,
this
,
function
(
code
,
address
,
index
)
{
codeManager
.
event
.
register
(
'changed'
,
this
,
function
(
code
,
address
,
index
)
{
if
(
index
===
undefined
||
index
===
null
)
{
if
(
index
===
undefined
||
index
===
null
)
{
st
.
fail
(
index
)
st
.
fail
(
index
)
}
else
{
}
else
{
...
@@ -48,7 +48,7 @@ function continueTesting (t, codeManager) {
...
@@ -48,7 +48,7 @@ function continueTesting (t, codeManager) {
}
}
})
})
codeManager
.
register
(
'changed'
,
this
,
function
(
code
,
address
,
index
)
{
codeManager
.
event
.
register
(
'changed'
,
this
,
function
(
code
,
address
,
index
)
{
if
(
!
code
)
{
if
(
!
code
)
{
st
.
fail
(
'no codes'
)
st
.
fail
(
'no codes'
)
}
else
{
}
else
{
...
...
test/eventManager.js
0 → 100644
View file @
08082e0a
'use strict'
var
tape
=
require
(
'tape'
)
var
EventManager
=
require
(
'../src/lib/eventManager'
)
tape
(
'eventManager'
,
function
(
t
)
{
t
.
test
(
'eventManager'
,
function
(
st
)
{
var
events
=
new
EventManager
()
var
listenner
=
{}
var
trace
=
''
listenner
.
listen
=
function
(
data1
)
{
trace
+=
data1
}
var
registeredFunction
=
function
(
data
)
{
trace
+=
data
}
events
.
register
(
'event1'
,
listenner
,
listenner
.
listen
)
events
.
register
(
'event2'
,
registeredFunction
)
events
.
trigger
(
'event1'
,
[
'event1'
])
events
.
trigger
(
'event2'
,
[
'event2'
])
st
.
equal
(
trace
,
'event1event2'
)
events
.
unregister
(
'event1'
,
listenner
.
listen
)
st
.
equal
(
events
.
registered
[
'event1'
].
length
,
1
)
st
.
equal
(
events
.
registered
[
'event2'
].
length
,
1
)
events
.
unregister
(
'event1'
,
listenner
,
listenner
.
listen
)
st
.
equal
(
events
.
registered
[
'event1'
].
length
,
0
)
st
.
equal
(
events
.
registered
[
'event2'
].
length
,
1
)
events
.
unregister
(
'event2'
,
registeredFunction
)
st
.
equal
(
events
.
registered
[
'event1'
].
length
,
0
)
st
.
equal
(
events
.
registered
[
'event2'
].
length
,
0
)
st
.
end
()
})
})
test/tests.js
View file @
08082e0a
...
@@ -5,3 +5,4 @@ require('./codeManager.js')
...
@@ -5,3 +5,4 @@ require('./codeManager.js')
require
(
'./util.js'
)
require
(
'./util.js'
)
require
(
'./astwalker.js'
)
require
(
'./astwalker.js'
)
require
(
'./disassembler.js'
)
require
(
'./disassembler.js'
)
require
(
'./eventManager.js'
)
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