Skip to content

Commit 13fc628

Browse files
fix: code adjustment
1 parent 2308265 commit 13fc628

File tree

3 files changed

+20
-27
lines changed

3 files changed

+20
-27
lines changed

src/tracing/js/bindings.rs

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1142,10 +1142,8 @@ mod tests {
11421142

11431143
let obj = res.as_object().unwrap();
11441144

1145-
let result_fn =
1146-
obj.get(js_string!("result"), &mut context).unwrap().as_object().cloned().unwrap();
1147-
let setup_fn =
1148-
obj.get(js_string!("setup"), &mut context).unwrap().as_object().cloned().unwrap();
1145+
let result_fn = obj.get(js_string!("result"), &mut context).unwrap().as_object().unwrap();
1146+
let setup_fn = obj.get(js_string!("setup"), &mut context).unwrap().as_object().unwrap();
11491147

11501148
let db = CacheDB::new(EmptyDB::new());
11511149
let state = EvmState::default();
@@ -1184,10 +1182,8 @@ mod tests {
11841182

11851183
let obj = eval.as_object().unwrap();
11861184

1187-
let result_fn =
1188-
obj.get(js_string!("result"), &mut context).unwrap().as_object().cloned().unwrap();
1189-
let step_fn =
1190-
obj.get(js_string!("step"), &mut context).unwrap().as_object().cloned().unwrap();
1185+
let result_fn = obj.get(js_string!("result"), &mut context).unwrap().as_object().unwrap();
1186+
let step_fn = obj.get(js_string!("step"), &mut context).unwrap().as_object().unwrap();
11911187

11921188
let mut stack = Stack::new();
11931189
let _ = stack.push(U256::from(35000));
@@ -1276,10 +1272,8 @@ mod tests {
12761272

12771273
let obj = eval.as_object().unwrap();
12781274

1279-
let result_fn =
1280-
obj.get(js_string!("result"), &mut context).unwrap().as_object().cloned().unwrap();
1281-
let step_fn =
1282-
obj.get(js_string!("step"), &mut context).unwrap().as_object().cloned().unwrap();
1275+
let result_fn = obj.get(js_string!("result"), &mut context).unwrap().as_object().unwrap();
1276+
let step_fn = obj.get(js_string!("step"), &mut context).unwrap().as_object().unwrap();
12831277

12841278
let mut stack = Stack::new();
12851279
let _ = stack.push(U256::from(35000));

src/tracing/js/builtins.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,11 @@ pub(crate) fn to_serde_value(val: JsValue, ctx: &mut Context) -> JsResult<serde_
3434
)
3535
})
3636
} else {
37-
val.to_json(ctx)
37+
val.to_json(ctx)?.ok_or_else(|| {
38+
JsError::from_native(
39+
JsNativeError::error().with_message("failed to convert JsValue to JSON"),
40+
)
41+
})
3842
}
3943
}
4044

@@ -94,7 +98,7 @@ pub(crate) fn register_builtins(ctx: &mut Context) -> JsResult<()> {
9498

9599
/// Converts an array, hex string or Uint8Array to a byte array.
96100
pub(crate) fn bytes_from_value(val: JsValue, context: &mut Context) -> JsResult<Vec<u8>> {
97-
if let Some(obj) = val.as_object().cloned() {
101+
if let Some(obj) = val.as_object().into_iter().next() {
98102
if obj.is::<TypedArray>() {
99103
let array: JsTypedArray = JsTypedArray::from_object(obj)?;
100104
let len = array.length(context)?;
@@ -126,7 +130,7 @@ pub(crate) fn bytes_from_value(val: JsValue, context: &mut Context) -> JsResult<
126130
}
127131

128132
if let Some(js_string) = val.as_string() {
129-
return hex_decode_js_string(js_string);
133+
return hex_decode_js_string(&js_string);
130134
}
131135

132136
Err(JsError::from_native(

src/tracing/js/mod.rs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -136,14 +136,13 @@ impl JsInspector {
136136
let obj =
137137
ctx.eval(Source::from_bytes(code.as_bytes())).map_err(JsInspectorError::EvalCode)?;
138138

139-
let obj = obj.as_object().cloned().ok_or(JsInspectorError::ExpectedJsObject)?;
139+
let obj = obj.as_object().ok_or(JsInspectorError::ExpectedJsObject)?;
140140

141141
// ensure all the fields are callables, if present
142142

143143
let result_fn = obj
144144
.get(js_string!("result"), &mut ctx)?
145145
.as_object()
146-
.cloned()
147146
.ok_or(JsInspectorError::ResultFunctionMissing)?;
148147
if !result_fn.is_callable() {
149148
return Err(JsInspectorError::ResultFunctionMissing);
@@ -152,21 +151,17 @@ impl JsInspector {
152151
let fault_fn = obj
153152
.get(js_string!("fault"), &mut ctx)?
154153
.as_object()
155-
.cloned()
156154
.ok_or(JsInspectorError::FaultFunctionMissing)?;
157155
if !fault_fn.is_callable() {
158156
return Err(JsInspectorError::FaultFunctionMissing);
159157
}
160158

161-
let enter_fn = obj
162-
.get(js_string!("enter"), &mut ctx)?
163-
.as_object()
164-
.cloned()
165-
.filter(|o| o.is_callable());
159+
let enter_fn =
160+
obj.get(js_string!("enter"), &mut ctx)?.as_object().filter(|o| o.is_callable());
166161
let exit_fn =
167-
obj.get(js_string!("exit"), &mut ctx)?.as_object().cloned().filter(|o| o.is_callable());
162+
obj.get(js_string!("exit"), &mut ctx)?.as_object().filter(|o| o.is_callable());
168163
let step_fn =
169-
obj.get(js_string!("step"), &mut ctx)?.as_object().cloned().filter(|o| o.is_callable());
164+
obj.get(js_string!("step"), &mut ctx)?.as_object().filter(|o| o.is_callable());
170165

171166
let _js_config_value =
172167
JsValue::from_json(&config, &mut ctx).map_err(JsInspectorError::InvalidJsonConfig)?;
@@ -986,12 +981,12 @@ mod tests {
986981
this.res.push(toHex(slice(hex, 0, 2)));
987982
this.res.push(toHex(slice(hex, 2, 4)));
988983
this.res.push(toHex(slice(hex, 4, 6)));
989-
984+
990985
// Test slicing an array
991986
var arr = [0x01, 0x02, 0x03, 0x04, 0x05];
992987
this.res.push(toHex(slice(arr, 0, 3)));
993988
this.res.push(toHex(slice(arr, 1, 4)));
994-
989+
995990
// Test slicing a Uint8Array
996991
var uint8 = new Uint8Array([0xff, 0xee, 0xdd, 0xcc, 0xbb]);
997992
this.res.push(toHex(slice(uint8, 0, 2)));

0 commit comments

Comments
 (0)