| OLD | NEW |
| (Empty) |
| 1 dart_library.library('stack_trace', null, /* Imports */[ | |
| 2 'dart_sdk', | |
| 3 'path' | |
| 4 ], function load__stack_trace(exports, dart_sdk, path) { | |
| 5 'use strict'; | |
| 6 const core = dart_sdk.core; | |
| 7 const async = dart_sdk.async; | |
| 8 const _interceptors = dart_sdk._interceptors; | |
| 9 const math = dart_sdk.math; | |
| 10 const dart = dart_sdk.dart; | |
| 11 const dartx = dart_sdk.dartx; | |
| 12 const path$ = path.path; | |
| 13 const src__style = path.src__style; | |
| 14 const src__chain = Object.create(null); | |
| 15 const src__frame = Object.create(null); | |
| 16 const src__lazy_trace = Object.create(null); | |
| 17 const src__stack_zone_specification = Object.create(null); | |
| 18 const src__trace = Object.create(null); | |
| 19 const src__unparsed_frame = Object.create(null); | |
| 20 const src__utils = Object.create(null); | |
| 21 const src__vm_trace = Object.create(null); | |
| 22 const stack_trace = Object.create(null); | |
| 23 let JSArrayOfTrace = () => (JSArrayOfTrace = dart.constFn(_interceptors.JSArra
y$(src__trace.Trace)))(); | |
| 24 let ListOfTrace = () => (ListOfTrace = dart.constFn(core.List$(src__trace.Trac
e)))(); | |
| 25 let ListOfFrame = () => (ListOfFrame = dart.constFn(core.List$(src__frame.Fram
e)))(); | |
| 26 let dynamicAndChainTovoid = () => (dynamicAndChainTovoid = dart.constFn(dart.f
unctionType(dart.void, [dart.dynamic, src__chain.Chain])))(); | |
| 27 let ListOfString = () => (ListOfString = dart.constFn(core.List$(core.String))
)(); | |
| 28 let ExpandoOf_Node = () => (ExpandoOf_Node = dart.constFn(core.Expando$(src__s
tack_zone_specification._Node)))(); | |
| 29 let JSArrayOfFrame = () => (JSArrayOfFrame = dart.constFn(_interceptors.JSArra
y$(src__frame.Frame)))(); | |
| 30 let dynamicAnddynamicTodynamic = () => (dynamicAnddynamicTodynamic = dart.cons
tFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))(); | |
| 31 let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionT
ype(dart.dynamic, [])))(); | |
| 32 let StringToTrace = () => (StringToTrace = dart.constFn(dart.definiteFunctionT
ype(src__trace.Trace, [core.String])))(); | |
| 33 let FrameTobool = () => (FrameTobool = dart.constFn(dart.definiteFunctionType(
core.bool, [src__frame.Frame])))(); | |
| 34 let TraceToTrace = () => (TraceToTrace = dart.constFn(dart.definiteFunctionTyp
e(src__trace.Trace, [src__trace.Trace])))(); | |
| 35 let TraceTobool = () => (TraceTobool = dart.constFn(dart.definiteFunctionType(
core.bool, [src__trace.Trace])))(); | |
| 36 let TraceToListOfFrame = () => (TraceToListOfFrame = dart.constFn(dart.definit
eFunctionType(ListOfFrame(), [src__trace.Trace])))(); | |
| 37 let FrameToint = () => (FrameToint = dart.constFn(dart.definiteFunctionType(co
re.int, [src__frame.Frame])))(); | |
| 38 let TraceToint = () => (TraceToint = dart.constFn(dart.definiteFunctionType(co
re.int, [src__trace.Trace])))(); | |
| 39 let FrameToString = () => (FrameToString = dart.constFn(dart.definiteFunctionT
ype(core.String, [src__frame.Frame])))(); | |
| 40 let TraceToString = () => (TraceToString = dart.constFn(dart.definiteFunctionT
ype(core.String, [src__trace.Trace])))(); | |
| 41 let VoidToFrame = () => (VoidToFrame = dart.constFn(dart.definiteFunctionType(
src__frame.Frame, [])))(); | |
| 42 let dynamicAnddynamicToFrame = () => (dynamicAnddynamicToFrame = dart.constFn(
dart.definiteFunctionType(src__frame.Frame, [dart.dynamic, dart.dynamic])))(); | |
| 43 let VoidToTrace = () => (VoidToTrace = dart.constFn(dart.definiteFunctionType(
src__trace.Trace, [])))(); | |
| 44 let ObjectAndStackTraceAndEventSinkTovoid = () => (ObjectAndStackTraceAndEvent
SinkTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Object, cor
e.StackTrace, async.EventSink])))(); | |
| 45 let dynamicTodynamic = () => (dynamicTodynamic = dart.constFn(dart.definiteFun
ctionType(dart.dynamic, [dart.dynamic])))(); | |
| 46 let StringToFrame = () => (StringToFrame = dart.constFn(dart.definiteFunctionT
ype(src__frame.Frame, [core.String])))(); | |
| 47 let StringTobool = () => (StringTobool = dart.constFn(dart.definiteFunctionTyp
e(core.bool, [core.String])))(); | |
| 48 let FrameToFrame = () => (FrameToFrame = dart.constFn(dart.definiteFunctionTyp
e(src__frame.Frame, [src__frame.Frame])))(); | |
| 49 let StringAndintToString = () => (StringAndintToString = dart.constFn(dart.def
initeFunctionType(core.String, [core.String, core.int])))(); | |
| 50 let MatchToString = () => (MatchToString = dart.constFn(dart.definiteFunctionT
ype(core.String, [core.Match])))(); | |
| 51 src__chain.ChainHandler = dart.typedef('ChainHandler', () => dart.functionType
(dart.void, [dart.dynamic, src__chain.Chain])); | |
| 52 let const$; | |
| 53 let const$0; | |
| 54 src__chain.Chain = class Chain extends core.Object { | |
| 55 static get _currentSpec() { | |
| 56 return src__stack_zone_specification.StackZoneSpecification._check(async.Z
one.current.get(const$ || (const$ = dart.const(core.Symbol.new('stack_trace.stac
k_zone.spec'))))); | |
| 57 } | |
| 58 static capture(T) { | |
| 59 return (callback, opts) => { | |
| 60 let onError = opts && 'onError' in opts ? opts.onError : null; | |
| 61 let when = opts && 'when' in opts ? opts.when : true; | |
| 62 if (!dart.test(when)) { | |
| 63 let newOnError = null; | |
| 64 if (onError != null) { | |
| 65 newOnError = dart.fn((error, stackTrace) => { | |
| 66 dart.dcall(onError, error, src__chain.Chain.forTrace(core.StackTra
ce._check(stackTrace))); | |
| 67 }, dynamicAnddynamicTodynamic()); | |
| 68 } | |
| 69 return async.runZoned(T)(callback, {onError: core.Function._check(newO
nError)}); | |
| 70 } | |
| 71 let spec = new src__stack_zone_specification.StackZoneSpecification(onEr
ror); | |
| 72 return T.as(async.runZoned(dart.dynamic)(dart.fn(() => { | |
| 73 try { | |
| 74 return callback(); | |
| 75 } catch (error) { | |
| 76 let stackTrace = dart.stackTrace(error); | |
| 77 return async.Zone.current.handleUncaughtError(dart.dynamic)(error, s
tackTrace); | |
| 78 } | |
| 79 | |
| 80 }, VoidTodynamic()), {zoneSpecification: spec.toSpec(), zoneValues: dart
.map([const$0 || (const$0 = dart.const(core.Symbol.new('stack_trace.stack_zone.s
pec'))), spec], core.Symbol, src__stack_zone_specification.StackZoneSpecificatio
n)})); | |
| 81 }; | |
| 82 } | |
| 83 static track(futureOrStream) { | |
| 84 return futureOrStream; | |
| 85 } | |
| 86 static current(level) { | |
| 87 if (level === void 0) level = 0; | |
| 88 if (src__chain.Chain._currentSpec != null) return src__chain.Chain._curren
tSpec.currentChain(dart.notNull(level) + 1); | |
| 89 return new src__chain.Chain(JSArrayOfTrace().of([src__trace.Trace.current(
dart.notNull(level) + 1)])); | |
| 90 } | |
| 91 static forTrace(trace) { | |
| 92 if (src__chain.Chain.is(trace)) return trace; | |
| 93 if (src__chain.Chain._currentSpec == null) return new src__chain.Chain(JSA
rrayOfTrace().of([src__trace.Trace.from(trace)])); | |
| 94 return src__chain.Chain._currentSpec.chainFor(trace); | |
| 95 } | |
| 96 static parse(chain) { | |
| 97 if (dart.test(chain[dartx.isEmpty])) return new src__chain.Chain(JSArrayOf
Trace().of([])); | |
| 98 if (!dart.test(chain[dartx.contains](src__utils.chainGap))) return new src
__chain.Chain(JSArrayOfTrace().of([src__trace.Trace.parse(chain)])); | |
| 99 return new src__chain.Chain(chain[dartx.split](src__utils.chainGap)[dartx.
map](src__trace.Trace)(dart.fn(trace => new src__trace.Trace.parseFriendly(trace
), StringToTrace()))); | |
| 100 } | |
| 101 new(traces) { | |
| 102 this.traces = ListOfTrace().unmodifiable(traces); | |
| 103 } | |
| 104 get terse() { | |
| 105 return this.foldFrames(dart.fn(_ => false, FrameTobool()), {terse: true}); | |
| 106 } | |
| 107 foldFrames(predicate, opts) { | |
| 108 let terse = opts && 'terse' in opts ? opts.terse : false; | |
| 109 let foldedTraces = this.traces[dartx.map](src__trace.Trace)(dart.fn(trace
=> trace.foldFrames(predicate, {terse: terse}), TraceToTrace())); | |
| 110 let nonEmptyTraces = foldedTraces[dartx.where](dart.fn(trace => { | |
| 111 if (dart.notNull(trace.frames[dartx.length]) > 1) return true; | |
| 112 if (dart.test(trace.frames[dartx.isEmpty])) return false; | |
| 113 if (!dart.test(terse)) return false; | |
| 114 return trace.frames[dartx.single].line != null; | |
| 115 }, TraceTobool())); | |
| 116 if (dart.test(nonEmptyTraces[dartx.isEmpty]) && dart.test(foldedTraces[dar
tx.isNotEmpty])) { | |
| 117 return new src__chain.Chain(JSArrayOfTrace().of([foldedTraces[dartx.last
]])); | |
| 118 } | |
| 119 return new src__chain.Chain(nonEmptyTraces); | |
| 120 } | |
| 121 toTrace() { | |
| 122 return new src__trace.Trace(this.traces[dartx.expand](src__frame.Frame)(da
rt.fn(trace => trace.frames, TraceToListOfFrame()))); | |
| 123 } | |
| 124 toString() { | |
| 125 let longest = this.traces[dartx.map](core.int)(dart.fn(trace => trace.fram
es[dartx.map](core.int)(dart.fn(frame => frame.location[dartx.length], FrameToin
t()))[dartx.fold](core.int)(0, dart.gbind(math.max, core.int)), TraceToint()))[d
artx.fold](core.int)(0, dart.gbind(math.max, core.int)); | |
| 126 return this.traces[dartx.map](core.String)(dart.fn(trace => trace.frames[d
artx.map](core.String)(dart.fn(frame => dart.str`${src__utils.padRight(frame.loc
ation, longest)} ${frame.member}\n`, FrameToString()))[dartx.join](), TraceToSt
ring()))[dartx.join](src__utils.chainGap); | |
| 127 } | |
| 128 }; | |
| 129 src__chain.Chain[dart.implements] = () => [core.StackTrace]; | |
| 130 dart.setSignature(src__chain.Chain, { | |
| 131 constructors: () => ({ | |
| 132 current: dart.definiteFunctionType(src__chain.Chain, [], [core.int]), | |
| 133 forTrace: dart.definiteFunctionType(src__chain.Chain, [core.StackTrace]), | |
| 134 parse: dart.definiteFunctionType(src__chain.Chain, [core.String]), | |
| 135 new: dart.definiteFunctionType(src__chain.Chain, [core.Iterable$(src__trac
e.Trace)]) | |
| 136 }), | |
| 137 methods: () => ({ | |
| 138 foldFrames: dart.definiteFunctionType(src__chain.Chain, [dart.functionType
(core.bool, [src__frame.Frame])], {terse: core.bool}), | |
| 139 toTrace: dart.definiteFunctionType(src__trace.Trace, []) | |
| 140 }), | |
| 141 statics: () => ({ | |
| 142 capture: dart.definiteFunctionType(T => [T, [dart.functionType(T, [])], {o
nError: dynamicAndChainTovoid(), when: core.bool}]), | |
| 143 track: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]) | |
| 144 }), | |
| 145 names: ['capture', 'track'] | |
| 146 }); | |
| 147 dart.defineLazy(src__frame, { | |
| 148 get _vmFrame() { | |
| 149 return core.RegExp.new('^#\\d+\\s+(\\S.*) \\((.+?)((?::\\d+){0,2})\\)$'); | |
| 150 } | |
| 151 }); | |
| 152 dart.defineLazy(src__frame, { | |
| 153 get _v8Frame() { | |
| 154 return core.RegExp.new('^\\s*at (?:(\\S.*?)(?: \\[as [^\\]]+\\])? \\((.*)\
\)|(.*))$'); | |
| 155 } | |
| 156 }); | |
| 157 dart.defineLazy(src__frame, { | |
| 158 get _v8UrlLocation() { | |
| 159 return core.RegExp.new('^(.*):(\\d+):(\\d+)|native$'); | |
| 160 } | |
| 161 }); | |
| 162 dart.defineLazy(src__frame, { | |
| 163 get _v8EvalLocation() { | |
| 164 return core.RegExp.new('^eval at (?:\\S.*?) \\((.*)\\)(?:, .*?:\\d+:\\d+)?
$'); | |
| 165 } | |
| 166 }); | |
| 167 dart.defineLazy(src__frame, { | |
| 168 get _firefoxSafariFrame() { | |
| 169 return core.RegExp.new('^' + '(?:' + '([^@(/]*)' + '(?:\\(.*\\))?' + '((?:
/[^/]*)*)' + '(?:\\(.*\\))?' + '@' + ')?' + '(.*?)' + ':' + '(\\d*)' + '(?::(\\d
*))?' + '$'); | |
| 170 } | |
| 171 }); | |
| 172 dart.defineLazy(src__frame, { | |
| 173 get _friendlyFrame() { | |
| 174 return core.RegExp.new('^(\\S+)(?: (\\d+)(?::(\\d+))?)?\\s+([^\\d]\\S*)$')
; | |
| 175 } | |
| 176 }); | |
| 177 dart.defineLazy(src__frame, { | |
| 178 get _asyncBody() { | |
| 179 return core.RegExp.new('<(<anonymous closure>|[^>]+)_async_body>'); | |
| 180 } | |
| 181 }); | |
| 182 dart.defineLazy(src__frame, { | |
| 183 get _initialDot() { | |
| 184 return core.RegExp.new("^\\."); | |
| 185 } | |
| 186 }); | |
| 187 src__frame.Frame = class Frame extends core.Object { | |
| 188 get isCore() { | |
| 189 return this.uri.scheme == 'dart'; | |
| 190 } | |
| 191 get library() { | |
| 192 if (this.uri.scheme == 'data') return "data:..."; | |
| 193 return path$.prettyUri(this.uri); | |
| 194 } | |
| 195 get package() { | |
| 196 if (this.uri.scheme != 'package') return null; | |
| 197 return this.uri.path[dartx.split]('/')[dartx.first]; | |
| 198 } | |
| 199 get location() { | |
| 200 if (this.line == null) return this.library; | |
| 201 if (this.column == null) return dart.str`${this.library} ${this.line}`; | |
| 202 return dart.str`${this.library} ${this.line}:${this.column}`; | |
| 203 } | |
| 204 static caller(level) { | |
| 205 if (level === void 0) level = 1; | |
| 206 if (dart.notNull(level) < 0) { | |
| 207 dart.throw(new core.ArgumentError("Argument [level] must be greater than
or equal " + "to 0.")); | |
| 208 } | |
| 209 return src__trace.Trace.current(dart.notNull(level) + 1).frames[dartx.firs
t]; | |
| 210 } | |
| 211 static parseVM(frame) { | |
| 212 return src__frame.Frame._catchFormatException(frame, dart.fn(() => { | |
| 213 if (frame == '...') { | |
| 214 return new src__frame.Frame(core.Uri.new(), null, null, '...'); | |
| 215 } | |
| 216 let match = src__frame._vmFrame.firstMatch(frame); | |
| 217 if (match == null) return new src__unparsed_frame.UnparsedFrame(frame); | |
| 218 let member = match.get(1)[dartx.replaceAll](src__frame._asyncBody, "<asy
nc>")[dartx.replaceAll]("<anonymous closure>", "<fn>"); | |
| 219 let uri = core.Uri.parse(match.get(2)); | |
| 220 let lineAndColumn = match.get(3)[dartx.split](':'); | |
| 221 let line = dart.notNull(lineAndColumn[dartx.length]) > 1 ? core.int.pars
e(lineAndColumn[dartx.get](1)) : null; | |
| 222 let column = dart.notNull(lineAndColumn[dartx.length]) > 2 ? core.int.pa
rse(lineAndColumn[dartx.get](2)) : null; | |
| 223 return new src__frame.Frame(uri, line, column, member); | |
| 224 }, VoidToFrame())); | |
| 225 } | |
| 226 static parseV8(frame) { | |
| 227 return src__frame.Frame._catchFormatException(frame, dart.fn(() => { | |
| 228 let match = src__frame._v8Frame.firstMatch(frame); | |
| 229 if (match == null) return new src__unparsed_frame.UnparsedFrame(frame); | |
| 230 function parseLocation(location, member) { | |
| 231 let evalMatch = src__frame._v8EvalLocation.firstMatch(core.String._che
ck(location)); | |
| 232 while (evalMatch != null) { | |
| 233 location = evalMatch.get(1); | |
| 234 evalMatch = src__frame._v8EvalLocation.firstMatch(core.String._check
(location)); | |
| 235 } | |
| 236 if (dart.equals(location, 'native')) { | |
| 237 return new src__frame.Frame(core.Uri.parse('native'), null, null, co
re.String._check(member)); | |
| 238 } | |
| 239 let urlMatch = src__frame._v8UrlLocation.firstMatch(core.String._check
(location)); | |
| 240 if (urlMatch == null) return new src__unparsed_frame.UnparsedFrame(fra
me); | |
| 241 return new src__frame.Frame(src__frame.Frame._uriOrPathToUri(urlMatch.
get(1)), core.int.parse(urlMatch.get(2)), core.int.parse(urlMatch.get(3)), core.
String._check(member)); | |
| 242 } | |
| 243 dart.fn(parseLocation, dynamicAnddynamicToFrame()); | |
| 244 if (match.get(2) != null) { | |
| 245 return parseLocation(match.get(2), match.get(1)[dartx.replaceAll]("<an
onymous>", "<fn>")[dartx.replaceAll]("Anonymous function", "<fn>")); | |
| 246 } else { | |
| 247 return parseLocation(match.get(3), "<fn>"); | |
| 248 } | |
| 249 }, VoidToFrame())); | |
| 250 } | |
| 251 static parseJSCore(frame) { | |
| 252 return src__frame.Frame.parseV8(frame); | |
| 253 } | |
| 254 static parseIE(frame) { | |
| 255 return src__frame.Frame.parseV8(frame); | |
| 256 } | |
| 257 static parseFirefox(frame) { | |
| 258 return src__frame.Frame._catchFormatException(frame, dart.fn(() => { | |
| 259 let match = src__frame._firefoxSafariFrame.firstMatch(frame); | |
| 260 if (match == null) return new src__unparsed_frame.UnparsedFrame(frame); | |
| 261 let uri = src__frame.Frame._uriOrPathToUri(match.get(3)); | |
| 262 let member = null; | |
| 263 if (match.get(1) != null) { | |
| 264 member = match.get(1); | |
| 265 member = dart.dsend(member, '+', ListOfString().filled('/'[dartx.allMa
tches](match.get(2))[dartx.length], ".<fn>")[dartx.join]()); | |
| 266 if (dart.equals(member, '')) member = '<fn>'; | |
| 267 member = dart.dsend(member, 'replaceFirst', src__frame._initialDot, ''
); | |
| 268 } else { | |
| 269 member = '<fn>'; | |
| 270 } | |
| 271 let line = match.get(4) == '' ? null : core.int.parse(match.get(4)); | |
| 272 let column = match.get(5) == null || match.get(5) == '' ? null : core.in
t.parse(match.get(5)); | |
| 273 return new src__frame.Frame(uri, line, column, core.String._check(member
)); | |
| 274 }, VoidToFrame())); | |
| 275 } | |
| 276 static parseSafari6_0(frame) { | |
| 277 return src__frame.Frame.parseFirefox(frame); | |
| 278 } | |
| 279 static parseSafari6_1(frame) { | |
| 280 return src__frame.Frame.parseFirefox(frame); | |
| 281 } | |
| 282 static parseSafari(frame) { | |
| 283 return src__frame.Frame.parseFirefox(frame); | |
| 284 } | |
| 285 static parseFriendly(frame) { | |
| 286 return src__frame.Frame._catchFormatException(frame, dart.fn(() => { | |
| 287 let match = src__frame._friendlyFrame.firstMatch(frame); | |
| 288 if (match == null) { | |
| 289 dart.throw(new core.FormatException(dart.str`Couldn't parse package:st
ack_trace stack trace line '${frame}'.`)); | |
| 290 } | |
| 291 let uri = core.Uri.parse(match.get(1)); | |
| 292 if (uri.scheme == '') { | |
| 293 uri = path$.toUri(path$.absolute(path$.fromUri(uri))); | |
| 294 } | |
| 295 let line = match.get(2) == null ? null : core.int.parse(match.get(2)); | |
| 296 let column = match.get(3) == null ? null : core.int.parse(match.get(3)); | |
| 297 return new src__frame.Frame(uri, line, column, match.get(4)); | |
| 298 }, VoidToFrame())); | |
| 299 } | |
| 300 static _uriOrPathToUri(uriOrPath) { | |
| 301 if (dart.test(uriOrPath[dartx.contains](src__frame.Frame._uriRegExp))) { | |
| 302 return core.Uri.parse(uriOrPath); | |
| 303 } else if (dart.test(uriOrPath[dartx.contains](src__frame.Frame._windowsRe
gExp))) { | |
| 304 return core.Uri.file(uriOrPath, {windows: true}); | |
| 305 } else if (dart.test(uriOrPath[dartx.startsWith]('/'))) { | |
| 306 return core.Uri.file(uriOrPath, {windows: false}); | |
| 307 } | |
| 308 if (dart.test(uriOrPath[dartx.contains]('\\'))) return path$.windows.toUri
(uriOrPath); | |
| 309 return core.Uri.parse(uriOrPath); | |
| 310 } | |
| 311 static _catchFormatException(text, body) { | |
| 312 try { | |
| 313 return body(); | |
| 314 } catch (_) { | |
| 315 if (core.FormatException.is(_)) { | |
| 316 return new src__unparsed_frame.UnparsedFrame(text); | |
| 317 } else | |
| 318 throw _; | |
| 319 } | |
| 320 | |
| 321 } | |
| 322 new(uri, line, column, member) { | |
| 323 this.uri = uri; | |
| 324 this.line = line; | |
| 325 this.column = column; | |
| 326 this.member = member; | |
| 327 } | |
| 328 toString() { | |
| 329 return dart.str`${this.location} in ${this.member}`; | |
| 330 } | |
| 331 }; | |
| 332 dart.setSignature(src__frame.Frame, { | |
| 333 constructors: () => ({ | |
| 334 caller: dart.definiteFunctionType(src__frame.Frame, [], [core.int]), | |
| 335 parseVM: dart.definiteFunctionType(src__frame.Frame, [core.String]), | |
| 336 parseV8: dart.definiteFunctionType(src__frame.Frame, [core.String]), | |
| 337 parseJSCore: dart.definiteFunctionType(src__frame.Frame, [core.String]), | |
| 338 parseIE: dart.definiteFunctionType(src__frame.Frame, [core.String]), | |
| 339 parseFirefox: dart.definiteFunctionType(src__frame.Frame, [core.String]), | |
| 340 parseSafari6_0: dart.definiteFunctionType(src__frame.Frame, [core.String])
, | |
| 341 parseSafari6_1: dart.definiteFunctionType(src__frame.Frame, [core.String])
, | |
| 342 parseSafari: dart.definiteFunctionType(src__frame.Frame, [core.String]), | |
| 343 parseFriendly: dart.definiteFunctionType(src__frame.Frame, [core.String]), | |
| 344 new: dart.definiteFunctionType(src__frame.Frame, [core.Uri, core.int, core
.int, core.String]) | |
| 345 }), | |
| 346 statics: () => ({ | |
| 347 _uriOrPathToUri: dart.definiteFunctionType(core.Uri, [core.String]), | |
| 348 _catchFormatException: dart.definiteFunctionType(src__frame.Frame, [core.S
tring, dart.functionType(src__frame.Frame, [])]) | |
| 349 }), | |
| 350 names: ['_uriOrPathToUri', '_catchFormatException'] | |
| 351 }); | |
| 352 dart.defineLazy(src__frame.Frame, { | |
| 353 get _uriRegExp() { | |
| 354 return core.RegExp.new('^[a-zA-Z][-+.a-zA-Z\\d]*://'); | |
| 355 }, | |
| 356 get _windowsRegExp() { | |
| 357 return core.RegExp.new('^([a-zA-Z]:[\\\\/]|\\\\\\\\)'); | |
| 358 } | |
| 359 }); | |
| 360 src__lazy_trace.TraceThunk = dart.typedef('TraceThunk', () => dart.functionTyp
e(src__trace.Trace, [])); | |
| 361 const _thunk = Symbol('_thunk'); | |
| 362 const _inner = Symbol('_inner'); | |
| 363 const _trace = Symbol('_trace'); | |
| 364 src__lazy_trace.LazyTrace = class LazyTrace extends core.Object { | |
| 365 new(thunk) { | |
| 366 this[_thunk] = thunk; | |
| 367 this[_inner] = null; | |
| 368 } | |
| 369 get [_trace]() { | |
| 370 if (this[_inner] == null) this[_inner] = this[_thunk](); | |
| 371 return this[_inner]; | |
| 372 } | |
| 373 get frames() { | |
| 374 return this[_trace].frames; | |
| 375 } | |
| 376 get vmTrace() { | |
| 377 return this[_trace].vmTrace; | |
| 378 } | |
| 379 get terse() { | |
| 380 return new src__lazy_trace.LazyTrace(dart.fn(() => this[_trace].terse, Voi
dToTrace())); | |
| 381 } | |
| 382 foldFrames(predicate, opts) { | |
| 383 let terse = opts && 'terse' in opts ? opts.terse : false; | |
| 384 return new src__lazy_trace.LazyTrace(dart.fn(() => this[_trace].foldFrames
(predicate, {terse: terse}), VoidToTrace())); | |
| 385 } | |
| 386 toString() { | |
| 387 return dart.toString(this[_trace]); | |
| 388 } | |
| 389 set frames(_) { | |
| 390 return dart.throw(new core.UnimplementedError()); | |
| 391 } | |
| 392 }; | |
| 393 src__lazy_trace.LazyTrace[dart.implements] = () => [src__trace.Trace]; | |
| 394 dart.setSignature(src__lazy_trace.LazyTrace, { | |
| 395 constructors: () => ({new: dart.definiteFunctionType(src__lazy_trace.LazyTra
ce, [src__lazy_trace.TraceThunk])}), | |
| 396 methods: () => ({foldFrames: dart.definiteFunctionType(src__trace.Trace, [da
rt.functionType(core.bool, [src__frame.Frame])], {terse: core.bool})}) | |
| 397 }); | |
| 398 src__stack_zone_specification._ChainHandler = dart.typedef('_ChainHandler', ()
=> dart.functionType(dart.void, [dart.dynamic, src__chain.Chain])); | |
| 399 const _chains = Symbol('_chains'); | |
| 400 const _onError = Symbol('_onError'); | |
| 401 const _currentNode = Symbol('_currentNode'); | |
| 402 const _createNode = Symbol('_createNode'); | |
| 403 const _run = Symbol('_run'); | |
| 404 src__stack_zone_specification.StackZoneSpecification = class StackZoneSpecific
ation extends core.Object { | |
| 405 new(onError) { | |
| 406 if (onError === void 0) onError = null; | |
| 407 this[_chains] = new (ExpandoOf_Node())("stack chains"); | |
| 408 this[_onError] = onError; | |
| 409 this[_currentNode] = null; | |
| 410 } | |
| 411 toSpec() { | |
| 412 return async.ZoneSpecification.new({handleUncaughtError: dart.bind(this, '
handleUncaughtError'), registerCallback: dart.bind(this, 'registerCallback'), re
gisterUnaryCallback: dart.bind(this, 'registerUnaryCallback'), registerBinaryCal
lback: dart.bind(this, 'registerBinaryCallback'), errorCallback: dart.bind(this,
'errorCallback')}); | |
| 413 } | |
| 414 currentChain(level) { | |
| 415 if (level === void 0) level = 0; | |
| 416 return this[_createNode](dart.notNull(level) + 1).toChain(); | |
| 417 } | |
| 418 chainFor(trace) { | |
| 419 if (src__chain.Chain.is(trace)) return trace; | |
| 420 let previous = trace == null ? null : this[_chains].get(trace); | |
| 421 return new src__stack_zone_specification._Node(trace, previous).toChain(); | |
| 422 } | |
| 423 trackFuture(future, level) { | |
| 424 if (level === void 0) level = 0; | |
| 425 let completer = async.Completer.sync(); | |
| 426 let node = this[_createNode](dart.notNull(level) + 1); | |
| 427 future.then(dart.dynamic)(dart.bind(completer, 'complete')).catchError(dar
t.fn((e, stackTrace) => { | |
| 428 if (stackTrace == null) stackTrace = src__trace.Trace.current(); | |
| 429 if (!src__chain.Chain.is(stackTrace) && this[_chains].get(stackTrace) ==
null) { | |
| 430 this[_chains].set(stackTrace, node); | |
| 431 } | |
| 432 completer.completeError(e, core.StackTrace._check(stackTrace)); | |
| 433 }, dynamicAnddynamicTodynamic())); | |
| 434 return completer.future; | |
| 435 } | |
| 436 trackStream(stream, level) { | |
| 437 if (level === void 0) level = 0; | |
| 438 let node = this[_createNode](dart.notNull(level) + 1); | |
| 439 return stream.transform(dart.dynamic)(async.StreamTransformer.fromHandlers
({handleError: dart.fn((error, stackTrace, sink) => { | |
| 440 if (stackTrace == null) stackTrace = src__trace.Trace.current(); | |
| 441 if (!src__chain.Chain.is(stackTrace) && this[_chains].get(stackTrace)
== null) { | |
| 442 this[_chains].set(stackTrace, node); | |
| 443 } | |
| 444 sink.addError(error, stackTrace); | |
| 445 }, ObjectAndStackTraceAndEventSinkTovoid())})); | |
| 446 } | |
| 447 registerCallback(self, parent, zone, f) { | |
| 448 if (f == null) return parent.registerCallback(dart.dynamic)(zone, null); | |
| 449 let node = this[_createNode](1); | |
| 450 return parent.registerCallback(dart.dynamic)(zone, dart.fn(() => this[_run
](f, node), VoidTodynamic())); | |
| 451 } | |
| 452 registerUnaryCallback(self, parent, zone, f) { | |
| 453 if (f == null) return parent.registerUnaryCallback(dart.dynamic, dart.dyna
mic)(zone, null); | |
| 454 let node = this[_createNode](1); | |
| 455 return parent.registerUnaryCallback(dart.dynamic, dart.dynamic)(zone, dart
.fn(arg => this[_run](dart.fn(() => dart.dcall(f, arg), VoidTodynamic()), node),
dynamicTodynamic())); | |
| 456 } | |
| 457 registerBinaryCallback(self, parent, zone, f) { | |
| 458 if (f == null) return parent.registerBinaryCallback(dart.dynamic, dart.dyn
amic, dart.dynamic)(zone, null); | |
| 459 let node = this[_createNode](1); | |
| 460 return parent.registerBinaryCallback(dart.dynamic, dart.dynamic, dart.dyna
mic)(zone, dart.fn((arg1, arg2) => this[_run](dart.fn(() => dart.dcall(f, arg1,
arg2), VoidTodynamic()), node), dynamicAnddynamicTodynamic())); | |
| 461 } | |
| 462 handleUncaughtError(self, parent, zone, error, stackTrace) { | |
| 463 let stackChain = this.chainFor(stackTrace); | |
| 464 if (this[_onError] == null) { | |
| 465 return parent.handleUncaughtError(dart.dynamic)(zone, error, stackChain)
; | |
| 466 } | |
| 467 try { | |
| 468 return parent.runBinary(dart.dynamic, dart.dynamic, src__chain.Chain)(zo
ne, this[_onError], error, stackChain); | |
| 469 } catch (newError) { | |
| 470 let newStackTrace = dart.stackTrace(newError); | |
| 471 if (core.identical(newError, error)) { | |
| 472 return parent.handleUncaughtError(dart.dynamic)(zone, error, stackChai
n); | |
| 473 } else { | |
| 474 return parent.handleUncaughtError(dart.dynamic)(zone, newError, newSta
ckTrace); | |
| 475 } | |
| 476 } | |
| 477 | |
| 478 } | |
| 479 errorCallback(self, parent, zone, error, stackTrace) { | |
| 480 if (stackTrace == null) { | |
| 481 stackTrace = this[_createNode](2).toChain(); | |
| 482 } else { | |
| 483 if (this[_chains].get(stackTrace) == null) this[_chains].set(stackTrace,
this[_createNode](2)); | |
| 484 } | |
| 485 let asyncError = parent.errorCallback(zone, error, stackTrace); | |
| 486 return asyncError == null ? new async.AsyncError(error, stackTrace) : asyn
cError; | |
| 487 } | |
| 488 [_createNode](level) { | |
| 489 if (level === void 0) level = 0; | |
| 490 return new src__stack_zone_specification._Node(src__trace.Trace.current(da
rt.notNull(level) + 1), this[_currentNode]); | |
| 491 } | |
| 492 [_run](f, node) { | |
| 493 let previousNode = this[_currentNode]; | |
| 494 this[_currentNode] = node; | |
| 495 try { | |
| 496 return dart.dcall(f); | |
| 497 } catch (e) { | |
| 498 let stackTrace = dart.stackTrace(e); | |
| 499 this[_chains].set(stackTrace, node); | |
| 500 throw e; | |
| 501 } | |
| 502 finally { | |
| 503 this[_currentNode] = previousNode; | |
| 504 } | |
| 505 } | |
| 506 }; | |
| 507 dart.setSignature(src__stack_zone_specification.StackZoneSpecification, { | |
| 508 constructors: () => ({new: dart.definiteFunctionType(src__stack_zone_specifi
cation.StackZoneSpecification, [], [src__stack_zone_specification._ChainHandler]
)}), | |
| 509 methods: () => ({ | |
| 510 toSpec: dart.definiteFunctionType(async.ZoneSpecification, []), | |
| 511 currentChain: dart.definiteFunctionType(src__chain.Chain, [], [core.int]), | |
| 512 chainFor: dart.definiteFunctionType(src__chain.Chain, [core.StackTrace]), | |
| 513 trackFuture: dart.definiteFunctionType(async.Future, [async.Future], [core
.int]), | |
| 514 trackStream: dart.definiteFunctionType(async.Stream, [async.Stream], [core
.int]), | |
| 515 registerCallback: dart.definiteFunctionType(async.ZoneCallback, [async.Zon
e, async.ZoneDelegate, async.Zone, core.Function]), | |
| 516 registerUnaryCallback: dart.definiteFunctionType(async.ZoneUnaryCallback,
[async.Zone, async.ZoneDelegate, async.Zone, core.Function]), | |
| 517 registerBinaryCallback: dart.definiteFunctionType(async.ZoneBinaryCallback
, [async.Zone, async.ZoneDelegate, async.Zone, core.Function]), | |
| 518 handleUncaughtError: dart.definiteFunctionType(dart.dynamic, [async.Zone,
async.ZoneDelegate, async.Zone, dart.dynamic, core.StackTrace]), | |
| 519 errorCallback: dart.definiteFunctionType(async.AsyncError, [async.Zone, as
ync.ZoneDelegate, async.Zone, core.Object, core.StackTrace]), | |
| 520 [_createNode]: dart.definiteFunctionType(src__stack_zone_specification._No
de, [], [core.int]), | |
| 521 [_run]: dart.definiteFunctionType(dart.dynamic, [core.Function, src__stack
_zone_specification._Node]) | |
| 522 }) | |
| 523 }); | |
| 524 src__stack_zone_specification._Node = class _Node extends core.Object { | |
| 525 new(trace, previous) { | |
| 526 if (previous === void 0) previous = null; | |
| 527 this.previous = previous; | |
| 528 this.trace = trace == null ? src__trace.Trace.current() : src__trace.Trace
.from(trace); | |
| 529 } | |
| 530 toChain() { | |
| 531 let nodes = JSArrayOfTrace().of([]); | |
| 532 let node = this; | |
| 533 while (node != null) { | |
| 534 nodes[dartx.add](node.trace); | |
| 535 node = node.previous; | |
| 536 } | |
| 537 return new src__chain.Chain(nodes); | |
| 538 } | |
| 539 }; | |
| 540 dart.setSignature(src__stack_zone_specification._Node, { | |
| 541 constructors: () => ({new: dart.definiteFunctionType(src__stack_zone_specifi
cation._Node, [core.StackTrace], [src__stack_zone_specification._Node])}), | |
| 542 methods: () => ({toChain: dart.definiteFunctionType(src__chain.Chain, [])}) | |
| 543 }); | |
| 544 dart.defineLazy(src__trace, { | |
| 545 get _terseRegExp() { | |
| 546 return core.RegExp.new("(-patch)?([/\\\\].*)?$"); | |
| 547 } | |
| 548 }); | |
| 549 dart.defineLazy(src__trace, { | |
| 550 get _v8Trace() { | |
| 551 return core.RegExp.new("\\n ?at "); | |
| 552 } | |
| 553 }); | |
| 554 dart.defineLazy(src__trace, { | |
| 555 get _v8TraceLine() { | |
| 556 return core.RegExp.new(" ?at "); | |
| 557 } | |
| 558 }); | |
| 559 dart.defineLazy(src__trace, { | |
| 560 get _firefoxSafariTrace() { | |
| 561 return core.RegExp.new("^" + "(" + "([.0-9A-Za-z_$/<]|\\(.*\\))*" + "@" +
")?" + "[^\\s]*" + ":\\d*" + "$", {multiLine: true}); | |
| 562 } | |
| 563 }); | |
| 564 dart.defineLazy(src__trace, { | |
| 565 get _friendlyTrace() { | |
| 566 return core.RegExp.new("^[^\\s]+( \\d+(:\\d+)?)?[ \\t]+[^\\s]+$", {multiLi
ne: true}); | |
| 567 } | |
| 568 }); | |
| 569 src__trace.Trace = class Trace extends core.Object { | |
| 570 static format(stackTrace, opts) { | |
| 571 let terse = opts && 'terse' in opts ? opts.terse : true; | |
| 572 let trace = src__trace.Trace.from(stackTrace); | |
| 573 if (dart.test(terse)) trace = trace.terse; | |
| 574 return dart.toString(trace); | |
| 575 } | |
| 576 static current(level) { | |
| 577 if (level === void 0) level = 0; | |
| 578 if (dart.notNull(level) < 0) { | |
| 579 dart.throw(new core.ArgumentError("Argument [level] must be greater than
or equal " + "to 0.")); | |
| 580 } | |
| 581 let trace = src__trace.Trace.from(core.StackTrace.current); | |
| 582 return new src__lazy_trace.LazyTrace(dart.fn(() => new src__trace.Trace(tr
ace.frames[dartx.skip](dart.notNull(level) + (dart.test(src__utils.inJS) ? 2 : 1
))), VoidToTrace())); | |
| 583 } | |
| 584 static from(trace) { | |
| 585 if (trace == null) { | |
| 586 dart.throw(new core.ArgumentError("Cannot create a Trace from null.")); | |
| 587 } | |
| 588 if (src__trace.Trace.is(trace)) return trace; | |
| 589 if (src__chain.Chain.is(trace)) return trace.toTrace(); | |
| 590 return new src__lazy_trace.LazyTrace(dart.fn(() => src__trace.Trace.parse(
dart.toString(trace)), VoidToTrace())); | |
| 591 } | |
| 592 static parse(trace) { | |
| 593 try { | |
| 594 if (dart.test(trace[dartx.isEmpty])) return new src__trace.Trace(JSArray
OfFrame().of([])); | |
| 595 if (dart.test(trace[dartx.contains](src__trace._v8Trace))) return new sr
c__trace.Trace.parseV8(trace); | |
| 596 if (dart.test(trace[dartx.contains]("\tat "))) return new src__trace.Tra
ce.parseJSCore(trace); | |
| 597 if (dart.test(trace[dartx.contains](src__trace._firefoxSafariTrace))) { | |
| 598 return new src__trace.Trace.parseFirefox(trace); | |
| 599 } | |
| 600 if (dart.test(trace[dartx.contains](src__utils.chainGap))) return src__c
hain.Chain.parse(trace).toTrace(); | |
| 601 if (dart.test(trace[dartx.contains](src__trace._friendlyTrace))) { | |
| 602 return new src__trace.Trace.parseFriendly(trace); | |
| 603 } | |
| 604 return new src__trace.Trace.parseVM(trace); | |
| 605 } catch (error) { | |
| 606 if (core.FormatException.is(error)) { | |
| 607 dart.throw(new core.FormatException(dart.str`${error.message}\nStack t
race:\n${trace}`)); | |
| 608 } else | |
| 609 throw error; | |
| 610 } | |
| 611 | |
| 612 } | |
| 613 parseVM(trace) { | |
| 614 Trace.prototype.new.call(this, src__trace.Trace._parseVM(trace)); | |
| 615 } | |
| 616 static _parseVM(trace) { | |
| 617 let lines = trace[dartx.trim]()[dartx.split]("\n"); | |
| 618 let frames = lines[dartx.take](dart.notNull(lines[dartx.length]) - 1)[dart
x.map](src__frame.Frame)(dart.fn(line => src__frame.Frame.parseVM(line), StringT
oFrame()))[dartx.toList](); | |
| 619 if (!dart.test(lines[dartx.last][dartx.endsWith](".da"))) { | |
| 620 frames[dartx.add](src__frame.Frame.parseVM(lines[dartx.last])); | |
| 621 } | |
| 622 return frames; | |
| 623 } | |
| 624 parseV8(trace) { | |
| 625 Trace.prototype.new.call(this, trace[dartx.split]("\n")[dartx.skip](1)[dar
tx.skipWhile](dart.fn(line => !dart.test(line[dartx.startsWith](src__trace._v8Tr
aceLine)), StringTobool()))[dartx.map](src__frame.Frame)(dart.fn(line => src__fr
ame.Frame.parseV8(line), StringToFrame()))); | |
| 626 } | |
| 627 parseJSCore(trace) { | |
| 628 Trace.prototype.new.call(this, trace[dartx.split]("\n")[dartx.where](dart.
fn(line => line != "\tat ", StringTobool()))[dartx.map](src__frame.Frame)(dart.f
n(line => src__frame.Frame.parseV8(line), StringToFrame()))); | |
| 629 } | |
| 630 parseIE(trace) { | |
| 631 Trace.prototype.parseV8.call(this, trace); | |
| 632 } | |
| 633 parseFirefox(trace) { | |
| 634 Trace.prototype.new.call(this, trace[dartx.trim]()[dartx.split]("\n")[dart
x.where](dart.fn(line => dart.test(line[dartx.isNotEmpty]) && line != '[native c
ode]', StringTobool()))[dartx.map](src__frame.Frame)(dart.fn(line => src__frame.
Frame.parseFirefox(line), StringToFrame()))); | |
| 635 } | |
| 636 parseSafari(trace) { | |
| 637 Trace.prototype.parseFirefox.call(this, trace); | |
| 638 } | |
| 639 parseSafari6_1(trace) { | |
| 640 Trace.prototype.parseSafari.call(this, trace); | |
| 641 } | |
| 642 parseSafari6_0(trace) { | |
| 643 Trace.prototype.new.call(this, trace[dartx.trim]()[dartx.split]("\n")[dart
x.where](dart.fn(line => line != '[native code]', StringTobool()))[dartx.map](sr
c__frame.Frame)(dart.fn(line => src__frame.Frame.parseFirefox(line), StringToFra
me()))); | |
| 644 } | |
| 645 parseFriendly(trace) { | |
| 646 Trace.prototype.new.call(this, dart.test(trace[dartx.isEmpty]) ? JSArrayOf
Frame().of([]) : trace[dartx.trim]()[dartx.split]("\n")[dartx.where](dart.fn(lin
e => !dart.test(line[dartx.startsWith]('=====')), StringTobool()))[dartx.map](sr
c__frame.Frame)(dart.fn(line => src__frame.Frame.parseFriendly(line), StringToFr
ame()))); | |
| 647 } | |
| 648 new(frames) { | |
| 649 this.frames = ListOfFrame().unmodifiable(frames); | |
| 650 } | |
| 651 get vmTrace() { | |
| 652 return new src__vm_trace.VMTrace(this.frames); | |
| 653 } | |
| 654 get terse() { | |
| 655 return this.foldFrames(dart.fn(_ => false, FrameTobool()), {terse: true}); | |
| 656 } | |
| 657 foldFrames(predicate, opts) { | |
| 658 let terse = opts && 'terse' in opts ? opts.terse : false; | |
| 659 if (dart.test(terse)) { | |
| 660 let oldPredicate = predicate; | |
| 661 predicate = dart.fn(frame => { | |
| 662 if (dart.test(oldPredicate(frame))) return true; | |
| 663 if (dart.test(frame.isCore)) return true; | |
| 664 if (frame.package == 'stack_trace') return true; | |
| 665 if (!dart.test(frame.member[dartx.contains]('<async>'))) return false; | |
| 666 return frame.line == null; | |
| 667 }, FrameTobool()); | |
| 668 } | |
| 669 let newFrames = JSArrayOfFrame().of([]); | |
| 670 for (let frame of this.frames[dartx.reversed]) { | |
| 671 if (src__unparsed_frame.UnparsedFrame.is(frame) || !dart.test(predicate(
frame))) { | |
| 672 newFrames[dartx.add](frame); | |
| 673 } else if (dart.test(newFrames[dartx.isEmpty]) || !dart.test(predicate(n
ewFrames[dartx.last]))) { | |
| 674 newFrames[dartx.add](new src__frame.Frame(frame.uri, frame.line, frame
.column, frame.member)); | |
| 675 } | |
| 676 } | |
| 677 if (dart.test(terse)) { | |
| 678 newFrames = newFrames[dartx.map](src__frame.Frame)(dart.fn(frame => { | |
| 679 if (src__unparsed_frame.UnparsedFrame.is(frame) || !dart.test(predicat
e(frame))) return frame; | |
| 680 let library = frame.library[dartx.replaceAll](src__trace._terseRegExp,
''); | |
| 681 return new src__frame.Frame(core.Uri.parse(library), null, null, frame
.member); | |
| 682 }, FrameToFrame()))[dartx.toList](); | |
| 683 if (dart.notNull(newFrames[dartx.length]) > 1 && dart.test(newFrames[dar
tx.first].isCore)) newFrames[dartx.removeAt](0); | |
| 684 } | |
| 685 return new src__trace.Trace(newFrames[dartx.reversed]); | |
| 686 } | |
| 687 toString() { | |
| 688 let longest = this.frames[dartx.map](core.int)(dart.fn(frame => frame.loca
tion[dartx.length], FrameToint()))[dartx.fold](core.int)(0, dart.gbind(math.max,
core.int)); | |
| 689 return this.frames[dartx.map](core.String)(dart.fn(frame => { | |
| 690 if (src__unparsed_frame.UnparsedFrame.is(frame)) return dart.str`${frame
}\n`; | |
| 691 return dart.str`${src__utils.padRight(frame.location, longest)} ${frame
.member}\n`; | |
| 692 }, FrameToString()))[dartx.join](); | |
| 693 } | |
| 694 }; | |
| 695 dart.defineNamedConstructor(src__trace.Trace, 'parseVM'); | |
| 696 dart.defineNamedConstructor(src__trace.Trace, 'parseV8'); | |
| 697 dart.defineNamedConstructor(src__trace.Trace, 'parseJSCore'); | |
| 698 dart.defineNamedConstructor(src__trace.Trace, 'parseIE'); | |
| 699 dart.defineNamedConstructor(src__trace.Trace, 'parseFirefox'); | |
| 700 dart.defineNamedConstructor(src__trace.Trace, 'parseSafari'); | |
| 701 dart.defineNamedConstructor(src__trace.Trace, 'parseSafari6_1'); | |
| 702 dart.defineNamedConstructor(src__trace.Trace, 'parseSafari6_0'); | |
| 703 dart.defineNamedConstructor(src__trace.Trace, 'parseFriendly'); | |
| 704 src__trace.Trace[dart.implements] = () => [core.StackTrace]; | |
| 705 dart.setSignature(src__trace.Trace, { | |
| 706 constructors: () => ({ | |
| 707 current: dart.definiteFunctionType(src__trace.Trace, [], [core.int]), | |
| 708 from: dart.definiteFunctionType(src__trace.Trace, [core.StackTrace]), | |
| 709 parse: dart.definiteFunctionType(src__trace.Trace, [core.String]), | |
| 710 parseVM: dart.definiteFunctionType(src__trace.Trace, [core.String]), | |
| 711 parseV8: dart.definiteFunctionType(src__trace.Trace, [core.String]), | |
| 712 parseJSCore: dart.definiteFunctionType(src__trace.Trace, [core.String]), | |
| 713 parseIE: dart.definiteFunctionType(src__trace.Trace, [core.String]), | |
| 714 parseFirefox: dart.definiteFunctionType(src__trace.Trace, [core.String]), | |
| 715 parseSafari: dart.definiteFunctionType(src__trace.Trace, [core.String]), | |
| 716 parseSafari6_1: dart.definiteFunctionType(src__trace.Trace, [core.String])
, | |
| 717 parseSafari6_0: dart.definiteFunctionType(src__trace.Trace, [core.String])
, | |
| 718 parseFriendly: dart.definiteFunctionType(src__trace.Trace, [core.String]), | |
| 719 new: dart.definiteFunctionType(src__trace.Trace, [core.Iterable$(src__fram
e.Frame)]) | |
| 720 }), | |
| 721 methods: () => ({foldFrames: dart.definiteFunctionType(src__trace.Trace, [da
rt.functionType(core.bool, [src__frame.Frame])], {terse: core.bool})}), | |
| 722 statics: () => ({ | |
| 723 format: dart.definiteFunctionType(core.String, [core.StackTrace], {terse:
core.bool}), | |
| 724 _parseVM: dart.definiteFunctionType(core.List$(src__frame.Frame), [core.St
ring]) | |
| 725 }), | |
| 726 names: ['format', '_parseVM'] | |
| 727 }); | |
| 728 src__unparsed_frame.UnparsedFrame = class UnparsedFrame extends core.Object { | |
| 729 new(member) { | |
| 730 this.uri = core.Uri.new({path: "unparsed"}); | |
| 731 this.member = member; | |
| 732 this.line = null; | |
| 733 this.column = null; | |
| 734 this.isCore = false; | |
| 735 this.library = "unparsed"; | |
| 736 this.package = null; | |
| 737 this.location = "unparsed"; | |
| 738 } | |
| 739 toString() { | |
| 740 return this.member; | |
| 741 } | |
| 742 }; | |
| 743 src__unparsed_frame.UnparsedFrame[dart.implements] = () => [src__frame.Frame]; | |
| 744 dart.setSignature(src__unparsed_frame.UnparsedFrame, { | |
| 745 constructors: () => ({new: dart.definiteFunctionType(src__unparsed_frame.Unp
arsedFrame, [core.String])}) | |
| 746 }); | |
| 747 src__utils.chainGap = '===== asynchronous gap ===========================\n'; | |
| 748 dart.defineLazy(src__utils, { | |
| 749 get inJS() { | |
| 750 return dart.equals(path$.style, src__style.Style.url); | |
| 751 } | |
| 752 }); | |
| 753 src__utils.padRight = function(string, length) { | |
| 754 if (dart.notNull(string[dartx.length]) >= dart.notNull(length)) return strin
g; | |
| 755 let result = new core.StringBuffer(); | |
| 756 result.write(string); | |
| 757 for (let i = 0; i < dart.notNull(length) - dart.notNull(string[dartx.length]
); i++) { | |
| 758 result.write(' '); | |
| 759 } | |
| 760 return result.toString(); | |
| 761 }; | |
| 762 dart.fn(src__utils.padRight, StringAndintToString()); | |
| 763 src__vm_trace.VMTrace = class VMTrace extends core.Object { | |
| 764 new(frames) { | |
| 765 this.frames = frames; | |
| 766 } | |
| 767 toString() { | |
| 768 let i = 1; | |
| 769 return this.frames[dartx.map](core.String)(dart.fn(frame => { | |
| 770 let number = src__utils.padRight(dart.str`#${i++}`, 8); | |
| 771 let member = frame.member[dartx.replaceAllMapped](core.RegExp.new("[^.]+
\\.<async>"), dart.fn(match => dart.str`${match.get(1)}.<${match.get(1)}_async_b
ody>`, MatchToString()))[dartx.replaceAll]("<fn>", "<anonymous closure>"); | |
| 772 let line = frame.line == null ? 0 : frame.line; | |
| 773 let column = frame.column == null ? 0 : frame.column; | |
| 774 return dart.str`${number}${member} (${frame.uri}:${line}:${column})\n`; | |
| 775 }, FrameToString()))[dartx.join](); | |
| 776 } | |
| 777 }; | |
| 778 src__vm_trace.VMTrace[dart.implements] = () => [core.StackTrace]; | |
| 779 dart.setSignature(src__vm_trace.VMTrace, { | |
| 780 constructors: () => ({new: dart.definiteFunctionType(src__vm_trace.VMTrace,
[core.List$(src__frame.Frame)])}) | |
| 781 }); | |
| 782 stack_trace.ChainHandler = src__chain.ChainHandler; | |
| 783 stack_trace.Chain = src__chain.Chain; | |
| 784 stack_trace.Frame = src__frame.Frame; | |
| 785 stack_trace.Trace = src__trace.Trace; | |
| 786 stack_trace.UnparsedFrame = src__unparsed_frame.UnparsedFrame; | |
| 787 // Exports: | |
| 788 exports.src__chain = src__chain; | |
| 789 exports.src__frame = src__frame; | |
| 790 exports.src__lazy_trace = src__lazy_trace; | |
| 791 exports.src__stack_zone_specification = src__stack_zone_specification; | |
| 792 exports.src__trace = src__trace; | |
| 793 exports.src__unparsed_frame = src__unparsed_frame; | |
| 794 exports.src__utils = src__utils; | |
| 795 exports.src__vm_trace = src__vm_trace; | |
| 796 exports.stack_trace = stack_trace; | |
| 797 }); | |
| OLD | NEW |