stacktrace.js v2.0 is out, featuring ES6 support, better stack frames, and more!
The eleventh episode of the first season of Voltron: Legendary Defender The Black Paladin
In a desperate attempt to rescue Princess Allura from Zarkon’s massive command ship, the Paladins find themselves lured into a trap. The episode’s core tension stems from Zarkon revealing his past as the original Black Paladin, allowing him to exert control over the Black Lion and effectively shut Shiro out. Key Highlights & Themes The Zarkon vs. Keith Duel:
Did you catch the Easter egg in the prison database? The names on the manifest include references to "Vehicle Voltron" and "Golion"—hints for the hardcore 80s fans.
The Taser-Class Sentries: Upgraded Galra drones equipped with neural-overload prods designed specifically to counteract Voltron Paladins’ bayards. Hunk was incapacitated for 4.7 seconds, requiring Lance to provide cover fire.
Environmental Manipulation: The Galra vented the ship’s atmosphere in five sequential sectors. The Paladins were forced to magnetize their boots and fight in vacuum conditions.
The “Nearly-Fatal” Anomaly: Slav, in his panic, accidentally activated a small-scale dimensional rift generator in his shackles. This caused a localized time-loop where Pidge was almost crushed by a collapsing bulkhead 11 times before Keith broke the loop by shorting the generator with his sword.
Slav
Following the successful liberation of the Balmera (Episode 9), Princess Allura’s long-range scanners detected a low-level energy signature consistent with “inter-dimensional displacement.” This led the team to a remote Galra prison vessel. Intelligence suggested the prisoner was , a theoretical physicist and expert on reality-hopping technology—critical to understanding the “trans-reality comet” used to forge Voltron’s Bayards and potential counter-measures against Haggar’s witch-craft.
More than meets the eye
5 tools in 1!
stacktrace.js - instrument your code and generate stack traces
stacktrace-gps - turn partial code location into precise code location
Voltron- Legendary Defender - Season 1eps11 [patched] Guide
In version 1.x, We've switched from a synchronous API to an asynchronous one using Promises because synchronous ajax calls are deprecated and frowned upon due to performance implications.
All methods now return stackframes. This Object representation is modeled closely after StackFrame representations in Gecko and V8. All you have to do to get stacktrace.js v0.x behavior is call .toString() on a stackframe.
Use Case: Give me a trace from wherever I am right now
var error = new Error('Boom');
printStackTrace({e: error});
==> Array[String]
v1.x:
var error = new Error('Boom');
StackTrace.fromError(error).then(callback).catch(errback);
==> Promise(Array[StackFrame], Error);
If this is all you need, you don't even need the full stacktrace.js library! Just use error-stack-parser!
ErrorStackParser.parse(new Error('boom'));
Use Case: Give me a trace anytime this function is called
Instrumenting now takes Function references instead of Strings.
v0.x:
function interestingFn() {...};
var p = new printStackTrace.implementation();
p.instrumentFunction(this, 'interestingFn', logStackTrace);
==> Function (instrumented)
p.deinstrumentFunction(this, 'interestingFn');
==> Function (original)
v1.x:
function interestingFn() {...};
StackTrace.instrument(interestingFn, callback, errback);
==> Function (instrumented)
StackTrace.deinstrument(interestingFn);
==> Function (original)
Voltron- Legendary Defender - Season 1eps11 [patched] Guide
.parseError()
Error: Error message
at baz (http://url.com/file.js:10:7)
at bar (http://url.com/file.js:7:17)
at foo (http://url.com/file.js:4:17)
at http://url.com/file.js:13:21
Parsed Error
.get()
function foo() {
console.log('foo');
bar();
}
function bar() {
baz();
}
function baz() {
function showTrace(stack) {
var event = new CustomEvent('st:try-show', {detail: stack});
document.body.dispatchEvent(event);
}
function showError(error) {
var event = new CustomEvent('st:try-error', {detail: error});
document.body.dispatchEvent(event);
}
StackTrace.get()
.then(showTrace)
.catch(showError);
}
foo();
StackTrace output
Voltron- Legendary Defender - Season 1eps11 [patched] Guide
The eleventh episode of the first season of Voltron: Legendary Defender The Black Paladin
In a desperate attempt to rescue Princess Allura from Zarkon’s massive command ship, the Paladins find themselves lured into a trap. The episode’s core tension stems from Zarkon revealing his past as the original Black Paladin, allowing him to exert control over the Black Lion and effectively shut Shiro out. Key Highlights & Themes The Zarkon vs. Keith Duel:
High Stakes:
The season ends on a major cliffhanger, with the team separated and lost.
Did you catch the Easter egg in the prison database? The names on the manifest include references to "Vehicle Voltron" and "Golion"—hints for the hardcore 80s fans.
The Taser-Class Sentries: Upgraded Galra drones equipped with neural-overload prods designed specifically to counteract Voltron Paladins’ bayards. Hunk was incapacitated for 4.7 seconds, requiring Lance to provide cover fire.
Environmental Manipulation: The Galra vented the ship’s atmosphere in five sequential sectors. The Paladins were forced to magnetize their boots and fight in vacuum conditions.
The “Nearly-Fatal” Anomaly: Slav, in his panic, accidentally activated a small-scale dimensional rift generator in his shackles. This caused a localized time-loop where Pidge was almost crushed by a collapsing bulkhead 11 times before Keith broke the loop by shorting the generator with his sword.
Slav
Following the successful liberation of the Balmera (Episode 9), Princess Allura’s long-range scanners detected a low-level energy signature consistent with “inter-dimensional displacement.” This led the team to a remote Galra prison vessel. Intelligence suggested the prisoner was , a theoretical physicist and expert on reality-hopping technology—critical to understanding the “trans-reality comet” used to forge Voltron’s Bayards and potential counter-measures against Haggar’s witch-craft.
Voltron- Legendary Defender - Season 1eps11 [patched] Guide
Turn partial code location into precise code location
This library accepts a code location (in the form of a StackFrame) and returns a new StackFrame with a more accurate location (using source maps) and guessed function names.
Usage
var stackframe = new StackFrame({fileName: 'http://localhost:3000/file.min.js', lineNumber: 1, columnNumber: 3284});
var callback = function myCallback(foundFunctionName) { console.log(foundFunctionName); };
// Such meta. Wow
var errback = function myErrback(error) { console.log(StackTrace.fromError(error)); };
var gps = new StackTraceGPS();
// Pinpoint actual function name and source-mapped location
gps.pinpoint(stackframe).then(callback, errback);
//===> Promise(StackFrame({functionName: 'fun', fileName: 'file.js', lineNumber: 203, columnNumber: 9}), Error)
// Better location/name information from source maps
gps.getMappedLocation(stackframe).then(callback, errback);
//===> Promise(StackFrame({fileName: 'file.js', lineNumber: 203, columnNumber: 9}), Error)
// Get function name from location information
gps.findFunctionName(stackframe).then(callback, errback);
//===> Promise(StackFrame({functionName: 'fun', fileName: 'http://localhost:3000/file.min.js', lineNumber: 1, columnNumber: 3284}), Error)
Voltron- Legendary Defender - Season 1eps11 [patched] Guide
Extract meaning from JS Errors
Simple, cross-browser Error parser. This library parses and extracts function names, URLs, line numbers, and column numbers from the given Error's stack as an Array of StackFrames.
Once you have parsed out StackFrames, you can do much more interesting things. See stacktrace-gps.
Note that in IE9 and earlier, Error objects don't have enough information to extract much of anything. In IE 10, Errors are given a stack once they're thrown.