File tree Expand file tree Collapse file tree 3 files changed +8
-4
lines changed Expand file tree Collapse file tree 3 files changed +8
-4
lines changed Original file line number Diff line number Diff line change @@ -103,10 +103,11 @@ def initialize(response = nil)
103
103
end
104
104
105
105
class JavaScriptError < BrowserError
106
- attr_reader :class_name , :message
106
+ attr_reader :class_name , :message , :stack_trace
107
107
108
- def initialize ( response )
108
+ def initialize ( response , stack_trace = nil )
109
109
@class_name , @message = response . values_at ( "className" , "description" )
110
+ @stack_trace = stack_trace
110
111
super ( response . merge ( "message" => @message ) )
111
112
end
112
113
end
Original file line number Diff line number Diff line change @@ -154,7 +154,7 @@ def handle_error(response)
154
154
when /\A Error: timed out promise/
155
155
raise ScriptTimeoutError
156
156
else
157
- raise JavaScriptError . new ( result )
157
+ raise JavaScriptError . new ( result , response . dig ( "exceptionDetails" , "stackTrace" ) )
158
158
end
159
159
end
160
160
Original file line number Diff line number Diff line change @@ -221,7 +221,10 @@ def subscribe
221
221
if @browser . js_errors
222
222
on ( "Runtime.exceptionThrown" ) do |params |
223
223
# FIXME https://jvns.ca/blog/2015/11/27/why-rubys-timeout-is-dangerous-and-thread-dot-raise-is-terrifying/
224
- Thread . main . raise JavaScriptError . new ( params . dig ( "exceptionDetails" , "exception" ) )
224
+ Thread . main . raise JavaScriptError . new (
225
+ params . dig ( "exceptionDetails" , "exception" ) ,
226
+ params . dig ( "exceptionDetails" , "stackTrace" )
227
+ )
225
228
end
226
229
end
227
230
You can’t perform that action at this time.
0 commit comments