Accessing JS error object from MiniRacer::EvalError?
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- javascript, ruby
- Bereich
- backend
Rechercherichtung
Start by reading the MiniRacer::EvalError and MiniRacer::Context#eval implementation, then inspect the tests for evaluation errors and backtraces. Determine whether the JavaScript error object and its custom attributes can be exposed while preserving source line numbers; done means the issue's use case works without wrapper-induced backtrace offsets. The discussion has had no recent activity, so check its thread before starting.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I'm wondering how I can access the JavaScript error object from MiniRacer::EvalError.
I want to run script snippets from users and I want to report errors to them. We have some extended attributes on custom errors which I would need to access.
The only way I found to solve this is by wrapping the script before sending it to MiniRacer::Context#eval like this:
wrapper = <<~JS
try {
#{script}
}
catch(err) {
var thrownError = err;
}
JS
context.eval(wrapper)
With this I can access thrownError. But my issue is, that line numbers in backtraces are off. My current solution is to have a map that contains offsets accounting for the wrapper script.
Is there any other way to achieve this?
- Vorherrschende Sprache
- JavaScript
- Sterne
- 628
- Forks
- 100
- Ø Merge
- 1 T. 20 Std.
- Gemergte PRs (30 T.)
- 2
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus rubyjs/mini_racer
-
platform: darwin/x86
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
rubyjs/mini_racer#388 · 4 Kommentare ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
rubyjs/mini_racer#376 ·
-
Load script as moduleOffen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
rubyjs/mini_racer#353 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
rubyjs/mini_racer#346 · 6 Kommentare · 1 Reaktion ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
rubyjs/mini_racer#324 · 1 Kommentar · 1 Reaktion ·
Alle Issues in rubyjs/mini_racer
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
521xueweihan/HelloGitHub#4115 ·
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
outline/outline#14348 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
Maintainer antworten meist innerhalb von 1 Tag
-
area:install bug needs-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag