Skip to content

Commit

Permalink
Post-rebase update and a couple changes
Browse files Browse the repository at this point in the history
  • Loading branch information
nekevss committed Nov 21, 2023
1 parent 4f576a9 commit 08d8e02
Show file tree
Hide file tree
Showing 10 changed files with 26 additions and 84 deletions.
23 changes: 6 additions & 17 deletions boa_engine/src/builtins/temporal/calendar/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1139,23 +1139,12 @@ pub(crate) fn to_temporal_calendar_slot_value(
let calendar = date.inner.calendar().clone();
return Ok(calendar);
}
} else if calendar_like.is_plain_date_time() {
// TODO
return Err(JsNativeError::range()
.with_message("Not yet implemented.")
.into());
} else if calendar_like.is_plain_year_month() {
// TODO
return Err(JsNativeError::range()
.with_message("Not yet implemented.")
.into());
} else if calendar_like.is_plain_month_day() {
// TODO
return Err(JsNativeError::range()
.with_message("Not yet implemented.")
.into());
} else if calendar_like.is_zoned_date_time() {
// TODO
} else if calendar_like.is_plain_date_time()
|| calendar_like.is_plain_year_month()
|| calendar_like.is_plain_month_day()
|| calendar_like.is_zoned_date_time()
{
// TODO(nekevss): Separate out and reimplement the handling of different branches.
return Err(JsNativeError::range()
.with_message("Not yet implemented.")
.into());
Expand Down
2 changes: 1 addition & 1 deletion boa_engine/src/builtins/temporal/calendar/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,5 @@ fn run_custom_calendar() {
TestAction::assert_eq("cal.daysInMonth(date)", 14),
TestAction::assert_eq("cal.daysInWeek(date)", 6),
TestAction::assert_eq("cal.daysInYear(date)", 360),
])
]);
}
9 changes: 5 additions & 4 deletions boa_temporal/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,16 @@ license.workspace = true
repository.workspace = true
rust-version.workspace = true


[dependencies]
icu_calendar = { version = "~1.3.2", default-features = false }
tinystr = "0.7.4"
bitflags.workspace = true
icu_calendar = { workspace = true, default-features = false }
rustc-hash = { workspace = true, features = ["std"] }
num-bigint = { workspace = true, features = ["serde"] }
bitflags.workspace = true
num-traits.workspace = true


[features]
context = []

[lints]
workspace = true
2 changes: 1 addition & 1 deletion boa_temporal/src/calendar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ impl core::fmt::Debug for dyn CalendarProtocol {
}
}

/// The [[Calendar]] field slot of a Temporal Object.
/// The `[[Calendar]]` field slot of a Temporal Object.
#[derive(Debug)]
pub enum CalendarSlot {
/// The calendar identifier string.
Expand Down
2 changes: 1 addition & 1 deletion boa_temporal/src/duration.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1173,7 +1173,7 @@ impl Duration {
// 2. If zonedRelativeTo is not present, set zonedRelativeTo to undefined.
let zoned_relative_to = relative_targets.1;
// 3. If precalculatedPlainDateTime is not present, set precalculatedPlainDateTime to undefined.
let _precalc_pdt = relative_targets.2;
let _ = relative_targets.2;

let (frac_days, frac_secs) = match unit {
// 4. If unit is "year", "month", or "week", and plainRelativeTo is undefined, then
Expand Down
9 changes: 5 additions & 4 deletions boa_temporal/src/fields.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,14 @@ bitflags! {

/// The post conversion field value.
#[derive(Debug)]
#[allow(variant_size_differences)]
pub enum FieldValue {
/// Designates the values as an integer.
Integer(i32),
/// Designates the value as a string.
String(String),
/// Designates that the value is undefined.
Undefined,
/// Designates the value as a string.
String(String),
}

/// The Conversion type of a field.
Expand Down Expand Up @@ -320,7 +321,7 @@ impl TemporalFields {
let FieldValue::String(offset) = value else {
return Err(TemporalError::r#type().with_message("offset must be string."));
};
self.offset = Some(offset.clone());
self.offset = Some(offset.to_string());
self.bit_map.set(FieldMap::OFFSET, true);

Ok(())
Expand Down Expand Up @@ -353,7 +354,7 @@ impl TemporalFields {
let FieldValue::String(tz) = value else {
return Err(TemporalError::r#type().with_message("tz must be string."));
};
self.time_zone = Some(tz.clone());
self.time_zone = Some(tz.to_string());
self.bit_map.set(FieldMap::TIME_ZONE, true);
Ok(())
}
Expand Down
53 changes: 0 additions & 53 deletions boa_temporal/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,59 +6,6 @@
html_favicon_url = "https://raw.githubusercontent.com/boa-dev/boa/main/assets/logo.svg"
)]
#![cfg_attr(not(test), forbid(clippy::unwrap_used))]
#![warn(
// rustc lint groups https://doc.rust-lang.org/rustc/lints/groups.html
warnings,
future_incompatible,
let_underscore,
nonstandard_style,
rust_2018_compatibility,
rust_2018_idioms,
rust_2021_compatibility,
unused,
// rustc allowed-by-default lints https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html
missing_docs,
macro_use_extern_crate,
meta_variable_misuse,
missing_abi,
missing_copy_implementations,
missing_debug_implementations,
non_ascii_idents,
noop_method_call,
single_use_lifetimes,
trivial_casts,
trivial_numeric_casts,
unreachable_pub,
unsafe_op_in_unsafe_fn,
unused_crate_dependencies,
unused_import_braces,
unused_lifetimes,
unused_qualifications,
unused_tuple_struct_fields,
variant_size_differences,
// rustdoc lints https://doc.rust-lang.org/rustdoc/lints.html
rustdoc::broken_intra_doc_links,
rustdoc::private_intra_doc_links,
rustdoc::missing_crate_level_docs,
rustdoc::private_doc_tests,
rustdoc::invalid_codeblock_attributes,
rustdoc::invalid_rust_codeblocks,
rustdoc::bare_urls,
// clippy allowed by default
clippy::dbg_macro,
// clippy categories https://doc.rust-lang.org/clippy/
clippy::all,
clippy::correctness,
clippy::suspicious,
clippy::style,
clippy::complexity,
clippy::perf,
clippy::pedantic,
)]
#![allow(
// Currently throws a false positive regarding dependencies that are only used in benchmarks.
unused_crate_dependencies,
Expand Down
3 changes: 3 additions & 0 deletions boa_temporal/src/time.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@ use crate::iso::IsoTime;

/// The Temporal `PlainTime` object.
#[derive(Debug, Default, Clone, Copy)]
#[allow(dead_code)]
pub struct TemporalTime {
iso: IsoTime,
}

// ==== Private API ====

impl TemporalTime {
#[allow(dead_code)]
pub(crate) fn new_unchecked(
hour: i32,
minute: i32,
Expand All @@ -25,6 +27,7 @@ impl TemporalTime {
}

/// Checks if the time is a valid `TemporalTime`
#[allow(dead_code)]
pub(crate) fn is_valid(&self) -> bool {
self.iso.is_valid()
}
Expand Down
4 changes: 2 additions & 2 deletions boa_temporal/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -156,15 +156,15 @@ pub(crate) fn epoch_time_to_epoch_year(t: f64) -> i32 {
// roughly calculate the largest possible year given the time t,
// then check and refine the year.
let day_count = epoch_time_to_day_number(t);
let mut year = day_count / 365;
let mut year = (day_count / 365) + 1970;
loop {
if epoch_time_for_year(year) <= t {
break;
}
year -= 1;
}

year + 1970
year
}

/// Returns either 1 (true) or 0 (false)
Expand Down
3 changes: 2 additions & 1 deletion boa_temporal/src/zoneddatetime.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
//! The ZonedDateTime module.
//! The `ZonedDateTime` module.
// NOTE: Mostly serves as a placeholder currently
// until the rest can be implemented.
/// `TemporalZoneDateTime`
#[derive(Debug, Clone, Copy)]
pub struct TemporalZonedDateTime;

0 comments on commit 08d8e02

Please sign in to comment.