summaryrefslogtreecommitdiff
path: root/cli/ops
diff options
context:
space:
mode:
Diffstat (limited to 'cli/ops')
-rw-r--r--cli/ops/dispatch_json.rs2
-rw-r--r--cli/ops/dispatch_minimal.rs27
-rw-r--r--cli/ops/idna.rs14
3 files changed, 22 insertions, 21 deletions
diff --git a/cli/ops/dispatch_json.rs b/cli/ops/dispatch_json.rs
index c3a1c3b3f..ad6947dd1 100644
--- a/cli/ops/dispatch_json.rs
+++ b/cli/ops/dispatch_json.rs
@@ -27,7 +27,7 @@ pub enum JsonOp {
fn json_err(err: OpError) -> Value {
json!({
"message": err.msg,
- "kind": err.kind as u32,
+ "kind": err.kind_str,
})
}
diff --git a/cli/ops/dispatch_minimal.rs b/cli/ops/dispatch_minimal.rs
index c37e57e45..9cb81d4bc 100644
--- a/cli/ops/dispatch_minimal.rs
+++ b/cli/ops/dispatch_minimal.rs
@@ -40,21 +40,24 @@ impl Into<Buf> for Record {
pub struct ErrorRecord {
pub promise_id: i32,
pub arg: i32,
- pub error_code: i32,
+ pub error_len: i32,
+ pub error_code: Vec<u8>,
pub error_message: Vec<u8>,
}
impl Into<Buf> for ErrorRecord {
fn into(self) -> Buf {
- let v32: Vec<i32> = vec![self.promise_id, self.arg, self.error_code];
+ let v32: Vec<i32> = vec![self.promise_id, self.arg, self.error_len];
let mut v8: Vec<u8> = Vec::new();
for n in v32 {
v8.write_i32::<LittleEndian>(n).unwrap();
}
+ let mut code = self.error_code;
let mut message = self.error_message;
- // Align to 32bit word, padding with the space character.
- message.resize((message.len() + 3usize) & !3usize, b' ');
+ v8.append(&mut code);
v8.append(&mut message);
+ // Align to 32bit word, padding with the space character.
+ v8.resize((v8.len() + 3usize) & !3usize, b' ');
v8.into_boxed_slice()
}
}
@@ -62,13 +65,14 @@ impl Into<Buf> for ErrorRecord {
#[test]
fn test_error_record() {
let expected = vec![
- 1, 0, 0, 0, 255, 255, 255, 255, 10, 0, 0, 0, 69, 114, 114, 111, 114, 32,
- 32, 32,
+ 1, 0, 0, 0, 255, 255, 255, 255, 11, 0, 0, 0, 66, 97, 100, 82, 101, 115,
+ 111, 117, 114, 99, 101, 69, 114, 114, 111, 114,
];
let err_record = ErrorRecord {
promise_id: 1,
arg: -1,
- error_code: 10,
+ error_len: 11,
+ error_code: "BadResource".to_string().as_bytes().to_owned(),
error_message: "Error".to_string().as_bytes().to_owned(),
};
let buf: Buf = err_record.into();
@@ -128,7 +132,8 @@ where
let error_record = ErrorRecord {
promise_id: 0,
arg: -1,
- error_code: e.kind as i32,
+ error_len: e.kind_str.len() as i32,
+ error_code: e.kind_str.as_bytes().to_owned(),
error_message: e.msg.as_bytes().to_owned(),
};
return Op::Sync(error_record.into());
@@ -148,7 +153,8 @@ where
let error_record = ErrorRecord {
promise_id: record.promise_id,
arg: -1,
- error_code: err.kind as i32,
+ error_len: err.kind_str.len() as i32,
+ error_code: err.kind_str.as_bytes().to_owned(),
error_message: err.msg.as_bytes().to_owned(),
};
error_record.into()
@@ -165,7 +171,8 @@ where
let error_record = ErrorRecord {
promise_id: record.promise_id,
arg: -1,
- error_code: err.kind as i32,
+ error_len: err.kind_str.len() as i32,
+ error_code: err.kind_str.as_bytes().to_owned(),
error_message: err.msg.as_bytes().to_owned(),
};
error_record.into()
diff --git a/cli/ops/idna.rs b/cli/ops/idna.rs
index 8ecef4862..ee78307dc 100644
--- a/cli/ops/idna.rs
+++ b/cli/ops/idna.rs
@@ -3,7 +3,7 @@
//! https://url.spec.whatwg.org/#idna
use super::dispatch_json::{Deserialize, JsonOp, Value};
-use crate::op_error::{ErrorKind, OpError};
+use crate::op_error::OpError;
use crate::state::State;
use deno_core::CoreIsolate;
use deno_core::ZeroCopyBuf;
@@ -13,13 +13,6 @@ pub fn init(i: &mut CoreIsolate, s: &State) {
i.register_op("op_domain_to_ascii", s.stateful_json_op(op_domain_to_ascii));
}
-fn invalid_domain_error() -> OpError {
- OpError {
- kind: ErrorKind::TypeError,
- msg: "Invalid domain.".to_string(),
- }
-}
-
#[derive(Deserialize)]
#[serde(rename_all = "camelCase")]
struct DomainToAscii {
@@ -35,9 +28,10 @@ fn op_domain_to_ascii(
let args: DomainToAscii = serde_json::from_value(args)?;
let domain = if args.be_strict {
domain_to_ascii_strict(args.domain.as_str())
- .map_err(|_| invalid_domain_error())?
+ .map_err(|_| OpError::invalid_domain_error())?
} else {
- domain_to_ascii(args.domain.as_str()).map_err(|_| invalid_domain_error())?
+ domain_to_ascii(args.domain.as_str())
+ .map_err(|_| OpError::invalid_domain_error())?
};
Ok(JsonOp::Sync(json!(domain)))
}