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
5a935612
Commit
5a935612
authored
Feb 02, 2017
by
yann300
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
breakpoint manager
parent
63702cca
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
83 additions
and
0 deletions
+83
-0
breakpointManager.js
src/code/breakpointManager.js
+83
-0
No files found.
src/code/breakpointManager.js
0 → 100644
View file @
5a935612
'use strict'
var
EventManager
=
require
(
'../lib/eventManager'
)
class
breakpointManager
{
constructor
(
_debugger
)
{
this
.
event
=
new
EventManager
()
this
.
debugger
=
_debugger
this
.
breakpoints
=
{}
this
.
isPlaying
=
false
this
.
breakpointHits
=
{}
}
async
play
()
{
if
(
this
.
hasBreakpoint
())
{
this
.
isPlaying
=
true
var
sourceLocation
for
(
var
currentStep
=
this
.
debugger
.
currentStepIndex
;
currentStep
<
this
.
debugger
.
traceManager
.
trace
.
length
;
currentStep
++
)
{
try
{
sourceLocation
=
await
this
.
debugger
.
callTree
.
extractSourceLocation
(
currentStep
)
}
catch
(
e
)
{
console
.
log
(
'cannot jump to breakpoint '
+
e
.
message
)
}
if
(
this
.
checkSourceLocation
(
sourceLocation
))
{
this
.
debugger
.
stepManager
.
jumpTo
(
currentStep
)
this
.
event
.
trigger
(
'breakpointHit'
,
[
sourceLocation
])
break
}
}
}
}
checkSourceLocation
(
sourceLocation
)
{
if
(
this
.
breakpoints
[
sourceLocation
.
file
])
{
var
sources
=
this
.
breakpoints
[
sourceLocation
.
file
]
for
(
var
k
in
sources
)
{
var
source
=
sources
[
k
]
if
(
sourceLocation
.
start
>=
source
.
start
&&
sourceLocation
.
start
<
source
.
end
&&
(
this
.
breakpointHits
[
source
.
file
][
source
.
row
]
===
this
.
debugger
.
currentStepIndex
||
this
.
breakpointHits
[
source
.
file
][
source
.
row
]
===
-
1
))
{
this
.
breakpointHits
[
source
.
file
][
source
.
row
]
=
this
.
debugger
.
currentStepIndex
return
true
}
}
}
return
false
}
hasBreakpoint
()
{
for
(
var
k
in
this
.
breakpoints
)
{
if
(
this
.
breakpoints
[
k
].
length
)
{
return
true
}
}
return
false
}
add
(
sourceLocation
)
{
if
(
!
this
.
breakpoints
[
sourceLocation
.
file
])
{
this
.
breakpoints
[
sourceLocation
.
file
]
=
[]
}
this
.
breakpoints
[
sourceLocation
.
file
].
push
(
sourceLocation
)
if
(
!
this
.
breakpointHits
[
sourceLocation
.
file
])
{
this
.
breakpointHits
[
sourceLocation
.
file
]
=
{}
}
this
.
breakpointHits
[
sourceLocation
.
file
][
sourceLocation
.
row
]
=
-
1
}
remove
(
sourceLocation
)
{
if
(
this
.
breakpoints
[
sourceLocation
.
file
])
{
var
sources
=
this
.
breakpoints
[
sourceLocation
.
file
]
for
(
var
k
in
sources
)
{
var
source
=
sources
[
k
]
if
(
sourceLocation
.
start
===
source
.
start
&&
sourceLocation
.
length
===
source
.
length
)
{
sources
.
splice
(
k
,
1
)
this
.
breakpointHits
[
sourceLocation
.
file
][
source
.
row
]
=
undefined
break
}
}
}
}
}
module
.
exports
=
breakpointManager
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