VimUnDo]:!4H&'~<$^Xݵ=MicroTest.prototype.printException = function(error, stack) {.M_M=~5_   v M=~module.exports = Class;function Class(properties) {5_  v M=5_  v M=5_  v M=5_  v M= "ModuleTest.fromFile = function() {5_   v M=  var test = new ModuleTest();5_ MB  5_ MB 5_ MB  5_ MB5_ MB 5_  MB5_ MB   5_ MB5_ MB  oop.mixin();5_MBvar fake = require('fake');5_MBvar Scene = require('fake');5_MB5_  vMB console.log(var);5_ vMB "var Scene = require('fake/scene');5_ vMD console.log(Scene);5_  vMD^  //oop.mixin();5_  vMD_   oop.mixin();5_ vMFc 5_ vMFd5_ vMFq$ for (var property in properties) {5_ vMFq* this[property] = properties[property];5_ vMFq }5_ vMFq 5_  vMFw this5_!  vMFy function MicroTest(properties) {5_ "! vMF{ this.5_!#" vMF 5_"$#  vMF   5_#%$  vMF !MicroTest.fromFile = function() {5_$&% vMF5_%'& vMF  test._path = path;5_&(' vMFp5_')(vMF%Class.prototype.method = function() {5_(*)vMF)MicroTest.prototype.method = function() {5_)+*vMF 5_*,+ vMF   5_+-,$vMF'MicroTest.prototype.load = function() {5_,.-vMF5_-/.vMF5_.0/vMF5_/10vMF&var Scene = require('fake/lib/scene');5_021vMF#var fs = require('fake/lib/scene');5_132vMFvar fs = require('fs');5_243vMF5_354vMF5_465 vMF fs.load();5_576vMF fs.load(pat);5_687vMF fs.readFileSync(pat);5_798!vMF& this._source = fs.readFileSync(pat);5_8:9+vMF/ this._source = fs.readFileSync(path, 'utf8');5_9;:+vMF0 this._source = fs.readFileSync(path, 'utf08');5_:<;vMGFp5_;=<vMGG%Class.prototype.method = function() {5_<>=vMGI)MicroTest.prototype.method = function() {5_=?>vMGbp5_>@?vMGc%Class.prototype.method = function() {5_?A@vMGd)MicroTest.prototype.method = function() {5_@BAvMGm   5_ACBvMGx  this._context = null;5_BDCvMG5_CEDvMG var fs = require('fs');5_DFEvMG var vm = require('fs');5_EGFvMG 5_FHGvMG  vm.compileInContext(5_GIHvMG  vm.runInNewContext(5_HJI# v MG # vm.runInNewContext(this._source, 5_IKJVMG!  5_JLKVMG! throw new Error();5_KMLVMG! throw new Error('');5_LNMVMG> vm.runInNewContext(this._source, this._context, this._path);5_MONVMH 5_NPOVMH!5_OQPVMH throw new Error('abstract');5_PRQVMH throw new Error('abstract');5_QSRVMH > vm.runInNewContext(this._source, this._context, this._path);5_RTSVMJ  var test = new MicroTest();5_SUT VMT !  5_TVU VMT #  "5_UWVVMT!$% "p"$!#5_VXW!!!vMT "'%Class.prototype.method = function() {5_WYX!!!vMT "')MicroTest.prototype.method = function() {5_XZY!&!!vMT "')MicroTest.prototype.before = function() {5_Y[Z"!!vMT!#'5_Z\[#!#VMT#''5_[]\$!#VMT#%*5_\^]%!#VMT$&++MicroTest.prototype.before = function(fn) {5_]_^&!#VMT%'+ this._before = fn;5_^`_)(!#VMT(*++MicroTest.prototype.describe = function() {5__a`)/!#VMT)-, )++5_`ba-!#VMT,-5_acb,!#VMT,.-5_bdc-!#VMT,-5_ced,!#VMT,.-5_dfe+!#VMT*,.5_egf+!#VMT+-/ +-.5_fhg.!#VMT.40.0/5_gih0!#VMT/145_hji2!#VMT1345_ilj0!#VMT/14 5_jmkl!#VMT545_lnm#%VMT65_mon#%VMT6var dummy = function();5_npo #%VMT 6 this._before = null;5_oqp#%VMT 6 this._after = null;5_prq #%VMT 6 this._before = dummy;5_qsr#%VMT 6 this._after = dummy;5_rts#%VMT6var dummy = function() {};5_sut2#%VMT136 this._before();5_tvu2#%VMU247 2465_uwv3#%VMU 358 3575_vxw6#%VMUc56 throw e;5_wyx5#%VMUd!578 5775_xzy#%VMU85_y{z$&VMU9var oop = require('oop');5_z|{$&VMU"9var module = require('oop');5_{}|$&VMU::95_|~}  vMU#:console.log(var);5_}~ vMU&:console.log(module);5_~ vMU:var module = require('module');5_  vMU':console.log(module._compile);5_ vMU(:!console.log(nodeModule._compile);5_ vMU):console.log(nodeModule);5_ vMU*:console.log(nodeModule._cache);5_ vMU+console.log(nodeModule.prototype._compile);5_ vMU9#var nodeModule = require('module');5_" vMV9#var entryPoint = require('module');5_- vMV97var entryPoint = require('module').prototype._comppile;5_4 vMV::95_  vMV+:console.log(var);5_ vMV console.log(entryPoint);5_6 vMV,68: 6895_7 vMV-68:+ Error.captureStackTrace(e, entryPoint);5_7$ vMV68:1 Error.captureStackTrace(e, null ,entryPoint);5_7$ vMV.68:0 Error.captureStackTrace(e, null,entryPoint);5_7%2vMW(6var entryPoint = require('module').prototype._compile;5_6%1vMW(:95_7%2vMW3:var stack = require('trace');5_7%2vMW4/:"var stack = require('stacktrace');5_7%2vMW`:var stack = require('stack');5_7%2vMWb0:var stack = require('tract');5_7%2vMWv1:var stack = require('tracy');5_77%2vMW368:1 Error.captureStackTrace(e, null, entryPoint);5_77%2vMZ68 tracy.simplify(e);5_7%2vMZ4var tracy = require('tracy');5_07%2vMZ25<13 process.nextTick(f03; 02:5_4;%6vMZ35> }5_66=VMZ56 try { var args = this._before(); fn.apply(this, args); this._after(); } catch (e) { //tracy.simplify(e); console.error(e.stack); }5_466VMZ3<65_3>>VMZ 723 5_;==VMZ*8:<= });5_2==VM`[12 process.nextTick(function() {5_:<<VM`\9: }.bind(this));5_:;;VM`^99:5_7::VM`b68 //tracy.simplify(e);5_::VM`c://var tracy = require('tracy');5_4 ::VM`;35: fn.apply(this, args);5_4 ::VM`<35: fn.apply(null, args);5_8::VM`89;79; 79:5_888vM`=79; console.log(var);5_888vM`78 console.log(e.message);5_888vM`79; 79:5_899vM`78 e5_788vM`>68; 68:5_799vM`67 e.message = 'fuck';5_788vM`?79:5_899vM`78 e.message = 'fuck';5_688vM`68; 68:5_799vM`67 console.error();5_788vM`79:5_899vM`79; console.error();5_899vM`79; console.error('');5_899vM`79; console.error(name + '');5_899vM`7:;4 console.error(name + ': Unexpected exceptiona');5_8::vM`79</ console.error(name + ' raised an exception: ');5_8099vM`@79;3 console.error(name + ' raised an exception: ');5_8099vMaKB79;5_9::vMa[8:<4 console.error(name + ' raised an exception:\n');5_9::vMa\8:<6 console.error(''name + ' raised an exception:\n');5_9::vMa_C8:<; console.error('Test 'name + ' raised an exception:\n');5_9::vMad8:<> console.error('Test ' + name + ' raised an exception:\n');5_9%::vMagD8:<? console.error('Test "' + name + ' raised an exception:\n');5_9::vMasE8:<@ console.error('Test "' + name + '" raised an exception:\n');5_7::vMa89=79= 79<5_888vMaH79= console.log(var);5_888vMaI78 console.log(e);5_988vMa8:= 8:<5_988vMa89 e.5_988vMa8:; console.error('"' + name + '" raised an exception:\n');5_988vMaL8:= //console.error('"' + name + '" raised an exception:\n');5_988vMa:;=9;= 9;<5_:::vMa9;= console.log(var);5_:::vMaM9;= console.log('');5_96::vMa8:=; console.error('"' + name + '" raised an exception:\n');5_96::vMb8:=: console.error('"' + name + '" raised an exception:n');5_: ::vMbN9;= console.log('------');5_;::vMb O;==5_:::vMbT9: console.error('------');5_;::vMbU:; console.error('------');5_:::vMbW9;< console.error(e.stack);5_:$::vMbY9;<& console.error(str.indent(e.stack);5_:$::vMbZ9;<' console.error(str.indent(e.stack));5_:&::vMb\9;<* console.error(str.indent(e.stack, 2));5_:&::vMb_9;<) console.error(str.indent(e.stack, ));5_:&::vMbg9;</ console.error(str.indent(e.stack, 2, ' '));5_:&::vMbg9;<. console.error(str.indent(e.stack, , ' '));5_:&::vMbg9;<- console.error(str.indent(e.stack, ' '));5_:)::vMbiP9;<, console.error(str.indent(e.stack, ' '));5_:'::vMbqR9;</ console.error(str.indent(e.stack, ' ', 2));5_:*::vMbS9;<0 console.error(str.indent(e.stack, ' ', 2));5_::vMb<5_;;vMb=var vm = require('vm');5_;;vMb=var str = require('vm');5_;;vMbvar str = require('./str');5_::vMbT<5_:;;vMbU9;=9 console.error('"' + name + '" raised an exception:');5_:;;vMc9;=> console.error('Test "' + name + '" raised an exception:');5_:;;vMc9;=8 console.error('' + name + '" raised an exception:');5_:;;vMc9;=7 console.error(' + name + '" raised an exception:');5_:;;vMc9;=6 console.error( + name + '" raised an exception:');5_:;;vMc9;=5 console.error(+ name + '" raised an exception:');5_:;;vMc9;=4 console.error( name + '" raised an exception:');5_:;;vMc W9;=3 console.error(name + '" raised an exception:');5_;;vMcGX> =5_2<<vMcRY25? 24>5_4>>vMcg35@ this._testStack.push();5_?>>vMcjZ?BA ?A@5_>*>>vMcy[=?B- console.error(str.indent(e.stack, ' '));5_=>>vMc<>C <>B5_=??vMc<= for (var 5_=>>vMc=@C<>C <>B5_?AAvMc>@E }5_ =%AAvMc<>E( this._testStack.forEach(function() {5_  EAAvMcGFHpEE5_   GGGvMcFHI%Class.prototype.method = function() {5_   GGGvMcFHI)MicroTest.prototype.method = function() {5_  >GGvMc=> 5_ =FFvMc<=/ this._testStack.forEach(function(test, i) {5_=EEvMc<= });5_=DDvMc<>G <>F5_>EEvMd=> console.error(name + ':');5_DDDvMdDFF5_FDDvMdEF5_EDDvMdDFF console.error(name + ':');5_EDDvMdEHGDFG DFF5_GDDvMd FHI }5_GDDvMd FHI }0;5_GDDvMd FHI };5_HDDvMd GH console.error(name + ':');5_GDDvMd FHH5_FDDvMd EF 5_FDDvMdEGH console.error(name + ':');5_E#DDvMdDFH& this._testStack.forEach(function() {5_FDDvMd\EGH console.error(name + ':');5_ F DDvMd]EGH" console.error(testName + ':');5_! FDDvMd#EGH% console.error(testName + ':', i);5_ "!F.DDvMd&EGH0 console.error(str.indent(testName + ':', i);5_!#"F+DDvMd(EGH. console.error(str.indent(testName + ':'));5_"$#F.DDvMd)EGH2 console.error(str.indent(testName + ':', ''));5_#'$F1DDvMd*`EGH4 console.error(str.indent(testName + ':', ' '));5_$(%'DDvMhIH5_')(FFvMhJMicroTest._hadError = false;5_(*)  vMhJMicroTest._hadErrors = false;5_)+* vMhJMicroTest._errors = false;5_*,+ vMhKKJ5_+-, vMhM}5_,.- vMhaM5_-/.  vMiOMicroTest._errors = [];5_.0/ vMiO% if (MicroTest._errors.length > 0) {5_/10 vMi if (MicroTesttests > 0) {5_021 vMi5_132 vMi }5_243 vMiprocess.on('exit', function() {5_354 vMi});5_465 vMiLcmKJ5_576vMiNClass.method = function() {5_687  vMiNMicroTest.method = function() {5_798 vMiN5_8:9 vMj N this._tests.push();5_9;: vMjb O  N5_:<; vMj O5_;><! vMjc!#P5_<?=> vMj"R};RQ5_>@? vMj$ SpRQ5_?A@vMj'%Class.prototype.method = function() {5_@BAvMj(5_ACBvMj(};5_BDCvMj)SR5_CEDvMj.process5_DFEvMj. SSR5_EGFvMj/UClass.method = function() {5_FHG  vMj1UMicroTest.method = function() {5_GIH  vMj7U$MicroTest.printReport = function() {5_HJI vMj@!V!U5_IKJ vMjMV%MicroTest._printReport = function() {5_JLK ) vMjO!V+process.on('exit', MicroTest._printReport);5_KML 0 vMjR!V2process.on('exit', MicroTest._printReportAndExit);5_LNM vMjWVV5_MONvMjXdV console.log(var);5_NPOvMjf console.log('print report');5_OQPvMjgV U5_PRQvMjj var errors 5_QSRvMjkV U5_RTSvMj this._test5_SUTvMjU5_TVU vMj"%X!#p #W "V5_UWV"""vMj!"%Class.prototype.method = function() {5_VXW"""vMj!"5_WYX"""vMj!"};5_XZY"""vMj"%X!#X!#W5_Y[Z"""vMj!#ZClass.method = function() {5_Z\[" " "vMj!#ZMicroTest.method = function() {5_[]\" "vMjZ5_\^]" "vMj [  Z5_]_^# #vMj [ console.error();5_^`_# #vMj [ console.error('');5__a`# #vMj\[5_`ba ($ $vMj!\+ console.error('Executed %d tests in %d');5_acb $ $vMj"\. console.error('Executed %d tests in %d ms');5_bdc! % %vMj #]" 'Executed %d tests in %d ms');5_ced!& &vMj "^ 'Executed %d tests in %d ms'5_dfe!/& &vMj %^/ 'Executed %d tests with %d errors in %d ms'5_egf*) )vMj)+a5_fhg*) )vMj*-b *,a5_gih,) )vMk+-c stats.duration = 5_hji,) )vMk+-c stats.duration = +new Date5_ikj,) )vMk+-c stats.duration = new Date5_jlk,) )vMk+-c( stats.duration = new Date - MicroTest.5_kml,)) )vMke,/d ,.c5_lnm[) )vMk6f[]f []e5_mon!v!Mk_f%MicroTest.register = function(test) {5_nqo!v!Mkdf this._tests.push(test);5_orpq !v!MklfMicroTest._tests = [];5_qsr v Mkpf this._tests.push(microTest);5_rts v Mkxg f5_sut v Mk~gg this._tests = []:5_tvu v Mkg5_uwv v Mkh&var Scene = require('fake/lib/scene');5_vxw v Mkhh%var Test = require('fake/lib/scene');5_wyx v Ml$ihvar Test = require('test');5_xzyJ v Ml+IKh this.after = fn;5_y{zM v Ml3MPi MOh5_z|{N v Ml3MOj5_{}|N" v Ml@NPk NPj5_|~}O v MlDNPl NPk5_}~N v MljMOl# var test = test.create(name, fn);5_~N  v MmMOl) var test = test.create(this, name, fn);5_Q v MmPRl5_Q v MmPQ 5_P v MmkPRk5_RRlVMmQR if (arguments.length === 1) { fn = arguments[0]; name = fn.name; } this._testStack.push(name); try { var args = this._before(); fn.apply({}, args); this._after(); } catch (e) { tracy.simplify(e); this._printTestStack();E console.error(str.indent(e.stack, ' ', this._testStack.length)); console.error(''); } this._testStack.pop();};2MicroTest.prototype._printTestStack = function() {1 this._testStack.forEach(function(testName, i) {7 console.error(str.indent(testName + ':', ' ', i)); });};5_QRRVMmlP5_KRRVMoMPSLNpKNRKMQ5_MMMvMoLNU%Class.prototype.method = function() {5_MMMvMoLNU)MicroTest.prototype.method = function() {5_OM OV MoOSU5_PM OV MoOQX5_QM OV MoPRY0MicroTest.prototype.executeBefore = function() {5_YM OV MomX};5_XM OV MpWZZ WYY5_Y M OV MpXZ[ this._test5_YM OV MpXZ\ XZ[5_WM OV MpVW this._tests.push(test);5_YM OV MpY[[5_[M OV Mpn[^] []\5_NM OV MpMO^5_NM OV MqoMO^ this._before.execute();5_NM OV MqMO^ this._before.apply();5_M-M OV MqLN^0MicroTest.prototype.executeBefore = function() {5_NM OV MqMO^" this._before.apply(this, test.);5_NM OV Mq3MO^! this._before.apply(this, test);5_RM OV Mq6RT^5_RM OV Mq7QR5_RM OV Mq:QR this._testStack.push(name);5_RM OV Mq:QS^ QS]5_Q,M OV MqCpPR^/MicroTest.prototype.executeAfter = function() {5_^M OV MqU^5__M OV MqU^`c5_a#M OV MqY`bd1 this._testStack.forEach(function(testName, i) {5_a)M OV Mq\ace acd5_cM OV Mqbqbde7 console.error(str.indent(testName + ':', ' ', i));5_.M OV Mq.0f .0e5_/N PV Mq./ stats.tes5_.M OV Mq-/f -/e5_."N PV Mqr-/f" stats.tests = this._tests.length5_ vMq# this._microTests.push(microTest);MicroTest._microTests = [];5_- vMq-/g-/f5_, vMq+.g var stats = {};5_, vMq,0i ,.h5_4 vMr35k* stats.duration = new Date - this._start;5_/ vMr.0k duration: 5_/$ vMr/1k5_0 vMr/05_3 vMr 23# stats.tests = this._tests.length;5_3 vMr 23 stats.duration = ;5_2  vMr 25i13i this._cases5_4 vMr35k }5_3 vMr24k 5_2 vMr13k" this._cases.forEach(function() {5_3 vMr24k stats.tests += 5_3 vMr)s24k$ stats.tests += testCase.tests();5_k vMr3j};kk5_d vMr6fimegpdgldfk5_fffvMr6ego%Class.prototype.method = function() {5_fffvMr7ego)MicroTest.prototype.method = function() {5_gffvMr:fho5_gffvMr@tfho return this._tests.length5_- ffvMrS,.p ,.o5_4 ggvMrUy35q 35p5_c hhvMrcdrbdr bdq5_cccvMrzbdr console.log(var);5_cccvMrbc console.log('jojo');5_'ccvMr')q5_(ddvMr'(5_"ccvMr"#r!#r !#q5_"""vMr|!#r console.log(var);5_" ""vMr!#r console.log(stats);5_"""vMr!#r console.error(stats);5_"""vMr}!#r console.error('', stats);5_k""vMsmptlnpknskmr5_mmmvMslnv%Class.prototype.method = function() {5_mmmvMs lnv)MicroTest.prototype.method = function() {5_mmmvMs lnv/MicroTest.prototype.getTestDepth = function() {5_mmmvMslnv0MicroTest.prototype.getTestsDepth = function() {5_mmmvMslnv/MicroTest.prototype.getTestDepth = function() {5_mmmvMslnv.MicroTest.prototype.getTestepth = function() {5_mmmvMslnv-MicroTest.prototype.getestepth = function() {5_mmmvMslnv,MicroTest.prototype.getstepth = function() {5_mmmvMslnv+MicroTest.prototype.gettepth = function() {5_mmmvMslnv*MicroTest.prototype.getepth = function() {5_nmmvMsmov5_$mmvMsa#%v0 'Executed %d tests with %d errors in %d ms',5_$mmvMsc#%v3 '%d Executed %d tests with %d errors in %d ms',5_$mmvMse#%v1 '%d errors %d tests with %d errors in %d ms',5_$mmvMsg#%v4 '%d errors in %d tests with %d errors in %d ms',5_$mmvMsg#%v/ '%d errors in %d tests %d errors in %d ms',5_$mmvMsg#%v. '%d errors in %d tests d errors in %d ms',5_$mmvMsh#%v, '%d errors in %d tests errors in %d ms',5_$mmvMsh#%v% '%d errors in %d tests in %d ms',5_$mmvMsi#%v" '%d errors in %d tests %d ms',5_$!mmvMsm#%v# '%d errors in %d tests (%d ms',5_%mmvMsn$% stats.tests,5_%llvMsn%'u5_$mmvMsv#%v$ '%d errors in %d tests (%d ms)',5_6 mmvMs68v5_7 nnvMs68w, stats.tests += testCase.getTestsCount();5_7nnvMs68w- stats.errors += testCase.getTestsCount();5_6#nnvMs57w, stats.tests += testCase.getTestsCount();5_jnnvMsikw0MicroTest.prototype.getTestsCount = function() {5_ljlVMslpw5_mjlVMslnz5_njlVMsmo{/MicroTest.prototype.getTestCount = function() {5_n jlVMsnp| np{5_ojlVMsps}oq} oq|5_rjlVMsqs }5_rjlVMsrt rt5_tjlVMsst return this._tests.length;5_pjlVMsoq this._tests.each(function() {5_qjlVMspr 5_pjlVMtoq# this._tests.each(function(test) {5_$ % $ v MtZ#%) '%d errors in %d tests (took %d ms)',5_$% $ v Mt[#%* '%d error(s in %d tests (took %d ms)',5_$% $ v Mt]#%+ '%d error(s) in %d tests (took %d ms)',5_$% $ v Mt^#%, '%d error(s) in %d test(s (took %d ms)',5_$% $ v Mtj#%- '%d error(s) in %d test(s) (took %d ms)',5_$% $ v Mtj#%, '%d error(s) in %d tests) (took %d ms)',5_$% $ v Mtj#%+ '%d error(s) in %d test) (took %d ms)',5_$% $ v Mtk#%* '%d error(s) in %d test (took %d ms)',5_$ % $ v Mto#%, '%d error(s) in %d test%s (took %d ms)',5_$ % $ v Mto#%+ '%d errors) in %d test%s (took %d ms)',5_$ % $ v Mtp#%* '%d error) in %d test%s (took %d ms)',5_$ % $ v Mtp#%) '%d error in %d test%s (took %d ms)',5_%% $ v Mtr%' %'5_&% $ v Mty%' stats.errors === 1)5_&% $ v Mtz%' (stats.errors === 1)5_ &% $ v Mt{%' (stats.errors === 1) ? ''5_  &% $ v Mt}%' (stats.errors === 1) ? 's'5_   &% $ v Mt%' (stats.errors === 1) ? ''5_   &% $ v Mt%' (stats.errors !== 1) ? ''5_   &% $ v Mt%' (stats.errors !== 1) ? 's'5_  '% $ v Mt')5_ ( % $ v Mt')# (stats.errors !== 1) ? 's' : 0,5_( % $ v Mt')" (stats.tests !== 1) ? 's' : 0,5_( % $ v Mt')! (stats.tests !== 1) ? 's' : ,5_&!% $ v Mt%'# (stats.errors !== 1) ? 's' : 0,5_&!% $ v Mt%'" (stats.errors !== 1) ? 's' : ,5_"% $ v Mt!" console.error('stats', stats);5_{$ # v Muz|2MicroTest.prototype._printTestStack = function() {5_{$ # v Muz|1MicroTest.prototype._printestStack = function() {5_{$ # v Muz|0MicroTest.prototype._printstStack = function() {5_{$ # v Muz|/MicroTest.prototype._printtStack = function() {5_{$ # v Mu z|.MicroTest.prototype._printStack = function() {5_{{{"v"Mu z|2MicroTest.prototype._printTestStack = function() {5_~{{"v"MuE} }5_~{{"v"MuK}~ console.error('fuck fuck'):5_|{{"v"MuL{}5_|{{"v"MuP{} console.error('fuck fuck'):5_ |{{"v"MuQ{} console.error('fuck fuck');5_! |{{"v"MuZ{} console.error('fuck fuck');5_ "!d{{"v"Muece this._testStack.push();5_!$"|{{"v"Mu{|! console.error(this._testStack);5_"%#${{"v"Muvar tracy = require('tracy');5_$&%{zz"v"Mvz| z|5_%'&{zz"v"Mvz| var message = '';5_&('{zz"v"Mwz| var message = 'Exception in ';5_')({zz"v"Mw z| var stack = 'Exception in ';5_(*)~zz"v"Mw }~3 console.error(str.indent(name + ':', ' ', i));5_)+*}zz"v"Mw } }5_*,+~zz"v"Mw} stack.push(name);5_+-,~zz"v"Mw} stack.push('"' + name);5_,.-~zz"v"Mw} stack.push('"' + name + '');5_-/.zz"v"Mw 5_.0/zz"v"Mw return stack.join(''5_/10zz"v"Mw return stack.join(' -> '5_021 zz"v"Mw return stack.join(' -> ');5_132 zz"v"Mw"! return '' + stack.join(' -> ');5_243zz"v"Mw*/ return 'Exception in: ' + stack.join(' -> ');5_354zz"v"Mw,6 console.error 'Exception in: ' + stack.join(' -> ');5_4655zz"v"Mw-6 console.error('Exception in: ' + stack.join(' -> ');5_576~ zz"v"Mw@}! stack.push('"' + name + '"');5_6870zz"v"MwK7 console.error('Exception in: ' + stack.join(' -> '));5_7980zz"v"MwM6 console.error('Exception in: ' + stack.join(' > '));5_8:91zz"v"MwM6 console.error('Exception in: ' + stack.join(' < '));5_9;:zzz"v"My{1MicroTest.prototype.printTestStack = function() {5_:<;z/zz"v"My{2MicroTest.prototype.reportException = function() {5_;=<z5zz"v"My{8MicroTest.prototype.reportException = function(test, ) {5_<>=z5zz"v"My{=MicroTest.prototype.reportException = function(test, error) {5_=?>zzz"v"My{=MicroTest.prototype.reportException = function(test, stack) {5_>@?z.zz"v"M+y{ stack = stack.indexOf(error.message) + error.message.length;5_bdcvM8O var stackStart = stack = stack.indexOf(error.message) + error.message.length;5_cedvM8I var stackStart = = stack.indexOf(error.message) + error.message.length;5_dfevM9 5_egf"vM@ 5_figvMA console.log(var);5_gjhi"vMY 5_ikjvMf var lines = stack.split();5_jlkvMm! var lines = stack.split(lines);5_kmlvMn var lines = stack.split('');5_lnmvMw 5_monvMz while (var 5_npovM{ 5_oqpvM5_prqvM lines.shift();5_qsrvM 5_rtsvM if (5_sutvM 5_tvuvM var match = line.match();5_uwvvM var match = line.match(//);5_vxwvM! var match = line.match(/()/);5_wyxvM" var match = line.match(/()$/);5_xzyvM# var match = line.match(/\()$/);5_y{zvM$ var match = line.match(/\(\)$/);5_z|{vM% var match = line.match(/\(/\)$/);5_{}| vM& var match = line.match(/\(\/\)$/);5_|~} vM( var match = line.match(/\(\/.+\)$/);5_}~#vM) var match = line.match(/\(\/(.+\)$/);5_~/vM 5_vM console.log(var);5_vM 5_vM console.log(var);5_/vM6 var match = line.match(/\(\/(.+):(\d+):(\d)+\)$/);5_.vM5 var match = line.match(/\(\/(.+):(\d+):(\d)\)$/);5_,vM6 var match = line.match(/\(\/(.+):(\d+):(\d+)\)$/);5_0vM7 var match = line.match(/\(\/(.+):(\d+):([\d+)\)$/);5_/vM7 var match = line.match(/\(\/(.+):(\d+):([\d+)\)$/);5_&vM8 var match = line.match(/\(\/(.+):(\d+):([\d]+)\)$/);5_)vM9 var match = line.match(/\(\/(.+):([\d+):([\d]+)\)$/);5_$vM: var match = line.match(/\(\/(.+):([\d]+):([\d]+)\)$/);5_$vM( var match = line.match(/\(\/(.+)$/);5_$vM) var match = line.match(/\(\/(.+))$/);5_vM console.log(stack);5_&vM * var match = line.match(/\(\/(.+)\)$/);5_vM) var match = line.match(/\(\/(.+)\)/);5_vM( var match = line.match(/\(/(.+)\)/);5_vM' var match = line.match(/\((.+)\)/);5_vM& var match = line.match(/\(.+)\)/);5_vM% var match = line.match(/\(+)\)/);5_vM$ var match = line.match(/\()\)/);5_vM# var match = line.match(/\(\)/);5_vM" var match = line.match(/\()/);5_vM console.log(match);5_ vM console.log('match', match);5_ vM! console.eror('match', match);5_vM1! var match = line.match(/\(/);5_vM2 var match = line.match(/(/);5_vM3 var match = line.match(//);5_vM<$ var match = line.match(/[a-z]/);5_vM=" console.error('match', match);5_ vME console.log(line);5_vMP var m = line.match(/[a-z]/);5_vMP var m = line.match(/a-z]/);5_vMP var m = line.match(/-z]/);5_vMP var m = line.match(/z]/);5_vMP var m = line.match(/]/);5_vMP var m = line.match(//);5_vMY var m = line.match(/a/);5_vM[ console.error('match', m);5_vM 5_vM console.log(var);5_vM console.log(line.match(//);5_"vM$ console.log(line.match(/[a-z]/);5_ vM% console.log(line.match(/[a-z]/));5_vM console.error(line);5_FvM#G var stackStart = stack.indexOf(error.message) + error.message.length;5_vM& console.error(line.length);5_vM' console.error(line.match(/[a-z]/));5_ vM) console.error(!!line.match(/[a-z]/));5_vM& console.error(!!line.match(/()/));5_vM 5_vM var match = line.match(//5_vM var match = line.match(/(/5_vM var match = line.match(/\(/5_vM var match = line.match(/\(//5_!vM! var match = line.match(/\(\//5_"vM 5_vM1" console.error(match, !!match);5_vMX% console.error(match[0], !!match);5_ vMg# var match = line.match(/\(\//);5_ vMj% var match = line.match(/\(\/.+/);5_#vMj& var match = line.match(/\(\/(.+/);5_(vMp, var match = line.match(/\(\/(.+):(\d)/);5_*vMq- var match = line.match(/\(\/(.+):(\d+)/);5_,vMs0 var match = line.match(/\(\/(.+):(\d+).+)/);5_.vMs1 var match = line.match(/\(\/(.+):(\d+).+\)/);5_vM} console.error(match);5_vM~ 5_vM5_ vM 5_vM var call = {};5_vM 5_vM ''5_vM' 'Exception in: %s (line %d of %s)',5_vM line: 'unknown', 5_ vM line: 'unknown',5_ vM 5_ vM call.5_vM5_ vM call.line = match[1];5_vM call.line = match[1];5_vM break;5_vM 5_vM return call;5_vM 5_vM //console.error('match', m);5_vM //console.log(stack);5_vM //var lines = stack.split(5_vM5_vM break;5_vM 5_ vM2 var match = line.match(/\(\/(.+):(\d+).+\)$/);5_vM1 var match = line.match(/\(\/.+):(\d+).+\)$/);5_FvMK var stackStart = stack.indexOf(error.message) + error.message.length + 1;5_ vM] #  "5_!vM] $5_!vMc " if (stats.tests == 0) {5_!vMe " if (stats.tests ==- 0) {5_!vMf " if (stats.tests ==0 0) {5_"vMf!#5_! vMi "  "5_!vMj "5_"vMl!# // 5_"vMq!$ // Do not 5_vM5_vMvar vm = require('vm');5_vMvar path = require('vm');5_vM lastCall.file5_vM path.basename(lastCall.file5_vM' 'Exception in: %s (line %s of %s)',5_vM 5_vM5_VM$ if (stats.errors > 0) { process.reallyExit(1); }5_VM%5_0VM)045_1VM)025_VM<5_ VMA// @todo handle this via5_%VMM' 'Exception in: %s (line %s in %s)',5_VMU( 'Exception in: %s (line %s in %s):',5_VMW) 'Exception in: %s online %s in %s):',5_&VMY* 'Exception in: %s on line %s in %s):',5_$VMZ) 'Exception in: %s on line %s in %s:',5_'VMZ* 'Exception in: %s on line %s in "%s:',5_)VM\+ 'Exception in: %s on line %s in "%s":',5_ VM` path.basename(lastCall.file)5_VMl var stack = [];5_vMr$ stack.unshift('"' + name + '"');5_ vMs stack.join(' <- '),5_  vM~! path.basename(lastCall.file),5_   vM stack5_   vM str.indent(stack5_   vM 5_  vM// @todo port this to tracy4MicroTest.prototype._getLastCall = function(error) { var call = { line: '?', file: '?', }; var stack = error.stack; return call;G var stackStart = stack.indexOf(error.message) + error.message.length;# stack = stack.substr(stackStart); var lines = stack.split('\n'); while (lines.length) { var line = lines.shift();2 var match = line.match(/\((\/.+):(\d+).+\)$/); if (match) { call.file = match[1]; call.line = match[2]; return call; } } return call;};5_ vM5_vM1 'Exception in: %s on line %s in "%s":\n%s\n',5_vM"6 'Exception in test: %s on line %s in "%s":\n%s\n',5_vM"5 'Exception in test: %son line %s in "%s":\n%s\n',5_vM"2 'Exception in test: %sline %s in "%s":\n%s\n',5_vM"- 'Exception in test: %s%s in "%s":\n%s\n',5_vM", 'Exception in test: %ss in "%s":\n%s\n',5_vM#* 'Exception in test: %sin "%s":\n%s\n',5_vM$' 'Exception in test: %s"%s":\n%s\n',5_vM%% 'Exception in test: %ss":\n%s\n',5_vM%$ 'Exception in test: %s":\n%s\n',5_vM' lastCall.line,5_vM'! path.basename(lastCall.file),5_vM** var lastCall = this._getLastCall(error);5_.vM=MicroTest.prototype.printException = function(error, stack) {5_.vM8MicroTest.prototype.printException = function(, stack) {5_vM  'Exception in test: %s',5_vM5_ vM' console.error(!!line.match(/\()/));5_vM! //console.error(line.length);5_ vM% console.log(line.match(/[a-z]/));5_$vM( console.error(line.match(/[a-z]/g));5_vMZ onsole.error('match', m);5_vM: b5_gihFvMPK var stackStart = stack.indexOf(error.message) + error.message.length + 1;5_"$#{{{"v"Muz|#MicroTest.prototype. = function() {5_{$ # v Muz|1MicroTest.prototype._prinTestStack = function() {5_5ccvMr46q+ stats.tests = testCase.getTestsCount();5_5ccvMr{46q, stats.tests =+ testCase.getTestsCount();5_- ggvMrH,-o ,.p cases: this._cases.length5_ vMqMicroTest.cases = []; this.cases.push(microTest);5_ vMqf uthis.cases.push(microTest);5_,O QV Mq+-e var stats = {  };5_-O QV Mq,.g tests: 5_NTTVMoMOQ var test = Test.create({  });5_oqp !v!MkhfMicroTest._instances = [];5_<>=  vMj!5_$&'%E0FFvMd5EFH EGI console.log(var);FGI5_%&FFFvMd6_EGI console.log(i);5_ @@@vMc?A5_?AAvMc>?D console.error(name + ':');5_>@@vMc=?5_>@@vMc=?D console.error(name + ':');5_>@@vMc=?D+ console.error(str.indent(name + ':');5_ >)@@vMc=?D/ console.error(str.indent(name + ':', '');5_ >,@@vMc=?D0 console.error(str.indent(name + ':', ' ');5_:*::vMbr9;<- console.error(str.indent(e.stack, ' '));5_:&::vMb\9;<+ console.error(str.indent(e.stack, ''));5_:'::vMb]9;<- console.error(str.indent(e.stack, ' '));5_799vMa67< 68= e.message = ''5_799vMa68= e.message = '' + e.message;5_799vMa68=! e.message = '""' + e.message;5_799vMa68=# e.message = '"": ' + e.message;5_799vMa68=% e.message = '"''": ' + e.message;5_799vMa68=* e.message = '"' + + '": ' + e.message;5_799vMaJ68=/ e.message = '"' + name + '": ' + e.message;5_799vMaK68=7 e.message = 'in test "' + name + '": ' + e.message;5_888vMaG79= console.log(e.type);5_9::vMaM8:<6 console.error(''name + ' raised an exception:\n');5_899vM`79;. console.error('Unexpected exception in ');5_8,99vM`79;5 console.error('Unexpected exception in ' + name);5_8+99vM`79;; console.error('Unexpected exception in test: ' + name);5_8199vM`79;< console.error('Unexpected exception in test: "' + name);5_~ vMU%:$console.log(module.Module._compile);5_jlk !#VMT 4 this._before = n;5