aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py11
-rw-r--r--components/script/dom/bindings/conversions.rs2
-rw-r--r--components/script/dom/testbinding.rs26
-rw-r--r--components/script/dom/webidls/TestBinding.webidl26
4 files changed, 62 insertions, 3 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 92b05cb5780..934f3a7af82 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -80,7 +80,9 @@ builtinNames = {
IDLType.Tags.uint16: 'u16',
IDLType.Tags.uint32: 'u32',
IDLType.Tags.uint64: 'u64',
+ IDLType.Tags.unrestricted_float: 'f32',
IDLType.Tags.float: 'f32',
+ IDLType.Tags.unrestricted_double: 'f64',
IDLType.Tags.double: 'f64'
}
@@ -89,7 +91,8 @@ numericTags = [
IDLType.Tags.int16, IDLType.Tags.uint16,
IDLType.Tags.int32, IDLType.Tags.uint32,
IDLType.Tags.int64, IDLType.Tags.uint64,
- IDLType.Tags.float, IDLType.Tags.double
+ IDLType.Tags.unrestricted_float, IDLType.Tags.float,
+ IDLType.Tags.unrestricted_double, IDLType.Tags.double
]
class CastableObjectUnwrapper():
@@ -962,7 +965,8 @@ def convertConstIDLValueToJSVal(value):
return "DoubleVal(%s)" % (value.value)
if tag == IDLType.Tags.bool:
return "BoolVal(true)" if value.value else "BoolVal(false)"
- if tag in [IDLType.Tags.float, IDLType.Tags.double]:
+ if tag in [IDLType.Tags.unrestricted_float, IDLType.Tags.float,
+ IDLType.Tags.unrestricted_double, IDLType.Tags.double]:
return "DoubleVal(%s)" % (value.value)
raise TypeError("Const value of unhandled type: " + value.type)
@@ -2880,7 +2884,8 @@ def convertConstIDLValueToRust(value):
IDLType.Tags.int16, IDLType.Tags.uint16,
IDLType.Tags.int32, IDLType.Tags.uint32,
IDLType.Tags.int64, IDLType.Tags.uint64,
- IDLType.Tags.float, IDLType.Tags.double]:
+ IDLType.Tags.unrestricted_float, IDLType.Tags.float,
+ IDLType.Tags.unrestricted_double, IDLType.Tags.double]:
return str(value.value)
if tag == IDLType.Tags.bool:
diff --git a/components/script/dom/bindings/conversions.rs b/components/script/dom/bindings/conversions.rs
index 56f647ce841..0087e2135e0 100644
--- a/components/script/dom/bindings/conversions.rs
+++ b/components/script/dom/bindings/conversions.rs
@@ -16,7 +16,9 @@
//! | unsigned long | `u32` |
//! | long long | `i64` |
//! | unsigned long long | `u64` |
+//! | unrestricted float | `f32` |
//! | float | `f32` |
+//! | unrestricted double | `f64` |
//! | double | `f64` |
//! | DOMString | `DOMString` |
//! | USVString | `USVString` |
diff --git a/components/script/dom/testbinding.rs b/components/script/dom/testbinding.rs
index 5a88db06fdc..a5c448726a6 100644
--- a/components/script/dom/testbinding.rs
+++ b/components/script/dom/testbinding.rs
@@ -49,8 +49,12 @@ impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
fn SetLongLongAttribute(self, _: i64) {}
fn UnsignedLongLongAttribute(self) -> u64 { 0 }
fn SetUnsignedLongLongAttribute(self, _: u64) {}
+ fn UnrestrictedFloatAttribute(self) -> f32 { 0. }
+ fn SetUnrestrictedFloatAttribute(self, _: f32) {}
fn FloatAttribute(self) -> f32 { 0. }
fn SetFloatAttribute(self, _: f32) {}
+ fn UnrestrictedDoubleAttribute(self) -> f64 { 0. }
+ fn SetUnrestrictedDoubleAttribute(self, _: f64) {}
fn DoubleAttribute(self) -> f64 { 0. }
fn SetDoubleAttribute(self, _: f64) {}
fn StringAttribute(self) -> DOMString { "".to_owned() }
@@ -92,8 +96,12 @@ impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
fn SetLongLongAttributeNullable(self, _: Option<i64>) {}
fn GetUnsignedLongLongAttributeNullable(self) -> Option<u64> { Some(0) }
fn SetUnsignedLongLongAttributeNullable(self, _: Option<u64>) {}
+ fn GetUnrestrictedFloatAttributeNullable(self) -> Option<f32> { Some(0.) }
+ fn SetUnrestrictedFloatAttributeNullable(self, _: Option<f32>) {}
fn GetFloatAttributeNullable(self) -> Option<f32> { Some(0.) }
fn SetFloatAttributeNullable(self, _: Option<f32>) {}
+ fn GetUnrestrictedDoubleAttributeNullable(self) -> Option<f64> { Some(0.) }
+ fn SetUnrestrictedDoubleAttributeNullable(self, _: Option<f64>) {}
fn GetDoubleAttributeNullable(self) -> Option<f64> { Some(0.) }
fn SetDoubleAttributeNullable(self, _: Option<f64>) {}
fn GetByteStringAttributeNullable(self) -> Option<ByteString> { Some(ByteString::new(vec!())) }
@@ -125,7 +133,9 @@ impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
fn ReceiveUnsignedLong(self) -> u32 { 0 }
fn ReceiveLongLong(self) -> i64 { 0 }
fn ReceiveUnsignedLongLong(self) -> u64 { 0 }
+ fn ReceiveUnrestrictedFloat(self) -> f32 { 0. }
fn ReceiveFloat(self) -> f32 { 0. }
+ fn ReceiveUnrestrictedDouble(self) -> f64 { 0. }
fn ReceiveDouble(self) -> f64 { 0. }
fn ReceiveString(self) -> DOMString { "".to_owned() }
fn ReceiveUsvstring(self) -> USVString { USVString("".to_owned()) }
@@ -148,7 +158,9 @@ impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
fn ReceiveNullableUnsignedLong(self) -> Option<u32> { Some(0) }
fn ReceiveNullableLongLong(self) -> Option<i64> { Some(0) }
fn ReceiveNullableUnsignedLongLong(self) -> Option<u64> { Some(0) }
+ fn ReceiveNullableUnrestrictedFloat(self) -> Option<f32> { Some(0.) }
fn ReceiveNullableFloat(self) -> Option<f32> { Some(0.) }
+ fn ReceiveNullableUnrestrictedDouble(self) -> Option<f64> { Some(0.) }
fn ReceiveNullableDouble(self) -> Option<f64> { Some(0.) }
fn ReceiveNullableString(self) -> Option<DOMString> { Some("".to_owned()) }
fn ReceiveNullableUsvstring(self) -> Option<USVString> { Some(USVString("".to_owned())) }
@@ -170,7 +182,9 @@ impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
fn PassUnsignedLong(self, _: u32) {}
fn PassLongLong(self, _: i64) {}
fn PassUnsignedLongLong(self, _: u64) {}
+ fn PassUnrestrictedFloat(self, _: f32) {}
fn PassFloat(self, _: f32) {}
+ fn PassUnrestrictedDouble(self, _: f64) {}
fn PassDouble(self, _: f64) {}
fn PassString(self, _: DOMString) {}
fn PassUsvstring(self, _: USVString) {}
@@ -193,7 +207,9 @@ impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
fn PassNullableUnsignedLong(self, _: Option<u32>) {}
fn PassNullableLongLong(self, _: Option<i64>) {}
fn PassNullableUnsignedLongLong(self, _: Option<u64>) {}
+ fn PassNullableUnrestrictedFloat(self, _: Option<f32>) {}
fn PassNullableFloat(self, _: Option<f32>) {}
+ fn PassNullableUnrestrictedDouble(self, _: Option<f64>) {}
fn PassNullableDouble(self, _: Option<f64>) {}
fn PassNullableString(self, _: Option<DOMString>) {}
fn PassNullableUsvstring(self, _: Option<USVString>) {}
@@ -214,7 +230,9 @@ impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
fn PassOptionalUnsignedLong(self, _: Option<u32>) {}
fn PassOptionalLongLong(self, _: Option<i64>) {}
fn PassOptionalUnsignedLongLong(self, _: Option<u64>) {}
+ fn PassOptionalUnrestrictedFloat(self, _: Option<f32>) {}
fn PassOptionalFloat(self, _: Option<f32>) {}
+ fn PassOptionalUnrestrictedDouble(self, _: Option<f64>) {}
fn PassOptionalDouble(self, _: Option<f64>) {}
fn PassOptionalString(self, _: Option<DOMString>) {}
fn PassOptionalUsvstring(self, _: Option<USVString>) {}
@@ -236,7 +254,9 @@ impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
fn PassOptionalNullableUnsignedLong(self, _: Option<Option<u32>>) {}
fn PassOptionalNullableLongLong(self, _: Option<Option<i64>>) {}
fn PassOptionalNullableUnsignedLongLong(self, _: Option<Option<u64>>) {}
+ fn PassOptionalNullableUnrestrictedFloat(self, _: Option<Option<f32>>) {}
fn PassOptionalNullableFloat(self, _: Option<Option<f32>>) {}
+ fn PassOptionalNullableUnrestrictedDouble(self, _: Option<Option<f64>>) {}
fn PassOptionalNullableDouble(self, _: Option<Option<f64>>) {}
fn PassOptionalNullableString(self, _: Option<Option<DOMString>>) {}
fn PassOptionalNullableUsvstring(self, _: Option<Option<USVString>>) {}
@@ -270,7 +290,9 @@ impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
fn PassOptionalNullableUnsignedLongWithDefault(self, _: Option<u32>) {}
fn PassOptionalNullableLongLongWithDefault(self, _: Option<i64>) {}
fn PassOptionalNullableUnsignedLongLongWithDefault(self, _: Option<u64>) {}
+ // fn PassOptionalNullableUnrestrictedFloatWithDefault(self, _: Option<f32>) {}
// fn PassOptionalNullableFloatWithDefault(self, _: Option<f32>) {}
+ // fn PassOptionalNullableUnrestrictedDoubleWithDefault(self, _: Option<f64>) {}
// fn PassOptionalNullableDoubleWithDefault(self, _: Option<f64>) {}
fn PassOptionalNullableStringWithDefault(self, _: Option<DOMString>) {}
fn PassOptionalNullableUsvstringWithDefault(self, _: Option<USVString>) {}
@@ -292,7 +314,9 @@ impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
fn PassOptionalNullableUnsignedLongWithNonNullDefault(self, _: Option<u32>) {}
fn PassOptionalNullableLongLongWithNonNullDefault(self, _: Option<i64>) {}
fn PassOptionalNullableUnsignedLongLongWithNonNullDefault(self, _: Option<u64>) {}
+ // fn PassOptionalNullableUnrestrictedFloatWithNonNullDefault(self, _: Option<f32>) {}
// fn PassOptionalNullableFloatWithNonNullDefault(self, _: Option<f32>) {}
+ // fn PassOptionalNullableUnrestrictedDoubleWithNonNullDefault(self, _: Option<f64>) {}
// fn PassOptionalNullableDoubleWithNonNullDefault(self, _: Option<f64>) {}
fn PassOptionalNullableStringWithNonNullDefault(self, _: Option<DOMString>) {}
fn PassOptionalNullableUsvstringWithNonNullDefault(self, _: Option<USVString>) {}
@@ -307,7 +331,9 @@ impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
fn PassVariadicUnsignedLong(self, _: Vec<u32>) {}
fn PassVariadicLongLong(self, _: Vec<i64>) {}
fn PassVariadicUnsignedLongLong(self, _: Vec<u64>) {}
+ fn PassVariadicUnrestrictedFloat(self, _: Vec<f32>) {}
fn PassVariadicFloat(self, _: Vec<f32>) {}
+ fn PassVariadicUnrestrictedDouble(self, _: Vec<f64>) {}
fn PassVariadicDouble(self, _: Vec<f64>) {}
fn PassVariadicString(self, _: Vec<DOMString>) {}
fn PassVariadicUsvstring(self, _: Vec<USVString>) {}
diff --git a/components/script/dom/webidls/TestBinding.webidl b/components/script/dom/webidls/TestBinding.webidl
index 4c98746a9f1..e5c5aa1772c 100644
--- a/components/script/dom/webidls/TestBinding.webidl
+++ b/components/script/dom/webidls/TestBinding.webidl
@@ -14,7 +14,9 @@ dictionary TestDictionary {
unsigned long unsignedLongValue;
long long longLongValue;
unsigned long long unsignedLongLongValue;
+ unrestricted float unrestrictedFloatValue;
float floatValue;
+ unrestricted double unrestrictedDoubleValue;
double doubleValue;
DOMString stringValue;
USVString usvstringValue;
@@ -33,7 +35,9 @@ dictionary TestDictionaryDefaults {
unsigned long unsignedLongValue = 7;
long long longLongValue = 7;
unsigned long long unsignedLongLongValue = 7;
+ // unrestricted float unrestrictedFloatValue = 7.0;
// float floatValue = 7.0;
+ // unrestricted double UnrestrictedDoubleValue = 7.0;
// double doubleValue = 7.0;
DOMString stringValue = "foo";
USVString usvstringValue = "foo";
@@ -49,7 +53,9 @@ dictionary TestDictionaryDefaults {
unsigned long? nullableUnsignedLongValue = 7;
long long? nullableLongLongValue = 7;
unsigned long long? nullableUnsignedLongLongValue = 7;
+ // unrestricted float? nullableUnrestrictedFloatValue = 7.0;
// float? nullableFloatValue = 7.0;
+ // unrestricted double? nullableUnrestrictedDoubleValue = 7.0;
// double? nullableDoubleValue = 7.0;
DOMString? nullableStringValue = "foo";
USVString? nullableUsvstringValue = "foo";
@@ -66,7 +72,9 @@ interface TestBinding {
attribute unsigned long unsignedLongAttribute;
attribute long long longLongAttribute;
attribute unsigned long long unsignedLongLongAttribute;
+ attribute unrestricted float unrestrictedFloatAttribute;
attribute float floatAttribute;
+ attribute unrestricted double unrestrictedDoubleAttribute;
attribute double doubleAttribute;
attribute DOMString stringAttribute;
attribute USVString usvstringAttribute;
@@ -87,7 +95,9 @@ interface TestBinding {
attribute unsigned long? unsignedLongAttributeNullable;
attribute long long? longLongAttributeNullable;
attribute unsigned long long? unsignedLongLongAttributeNullable;
+ attribute unrestricted float? unrestrictedFloatAttributeNullable;
attribute float? floatAttributeNullable;
+ attribute unrestricted double? unrestrictedDoubleAttributeNullable;
attribute double? doubleAttributeNullable;
attribute DOMString? stringAttributeNullable;
attribute USVString? usvstringAttributeNullable;
@@ -109,7 +119,9 @@ interface TestBinding {
unsigned long receiveUnsignedLong();
long long receiveLongLong();
unsigned long long receiveUnsignedLongLong();
+ unrestricted float receiveUnrestrictedFloat();
float receiveFloat();
+ unrestricted double receiveUnrestrictedDouble();
double receiveDouble();
DOMString receiveString();
USVString receiveUsvstring();
@@ -129,7 +141,9 @@ interface TestBinding {
unsigned long? receiveNullableUnsignedLong();
long long? receiveNullableLongLong();
unsigned long long? receiveNullableUnsignedLongLong();
+ unrestricted float? receiveNullableUnrestrictedFloat();
float? receiveNullableFloat();
+ unrestricted double? receiveNullableUnrestrictedDouble();
double? receiveNullableDouble();
DOMString? receiveNullableString();
USVString? receiveNullableUsvstring();
@@ -148,7 +162,9 @@ interface TestBinding {
void passUnsignedLong(unsigned long arg);
void passLongLong(long long arg);
void passUnsignedLongLong(unsigned long long arg);
+ void passUnrestrictedFloat(unrestricted float arg);
void passFloat(float arg);
+ void passUnrestrictedDouble(unrestricted double arg);
void passDouble(double arg);
void passString(DOMString arg);
void passUsvstring(USVString arg);
@@ -171,7 +187,9 @@ interface TestBinding {
void passNullableUnsignedLong(unsigned long? arg);
void passNullableLongLong(long long? arg);
void passNullableUnsignedLongLong(unsigned long long? arg);
+ void passNullableUnrestrictedFloat(unrestricted float? arg);
void passNullableFloat(float? arg);
+ void passNullableUnrestrictedDouble(unrestricted double? arg);
void passNullableDouble(double? arg);
void passNullableString(DOMString? arg);
void passNullableUsvstring(USVString? arg);
@@ -192,7 +210,9 @@ interface TestBinding {
void passOptionalUnsignedLong(optional unsigned long arg);
void passOptionalLongLong(optional long long arg);
void passOptionalUnsignedLongLong(optional unsigned long long arg);
+ void passOptionalUnrestrictedFloat(optional unrestricted float arg);
void passOptionalFloat(optional float arg);
+ void passOptionalUnrestrictedDouble(optional unrestricted double arg);
void passOptionalDouble(optional double arg);
void passOptionalString(optional DOMString arg);
void passOptionalUsvstring(optional USVString arg);
@@ -214,7 +234,9 @@ interface TestBinding {
void passOptionalNullableUnsignedLong(optional unsigned long? arg);
void passOptionalNullableLongLong(optional long long? arg);
void passOptionalNullableUnsignedLongLong(optional unsigned long long? arg);
+ void passOptionalNullableUnrestrictedFloat(optional unrestricted float? arg);
void passOptionalNullableFloat(optional float? arg);
+ void passOptionalNullableUnrestrictedDouble(optional unrestricted double? arg);
void passOptionalNullableDouble(optional double? arg);
void passOptionalNullableString(optional DOMString? arg);
void passOptionalNullableUsvstring(optional USVString? arg);
@@ -270,7 +292,9 @@ interface TestBinding {
void passOptionalNullableUnsignedLongWithNonNullDefault(optional unsigned long? arg = 7);
void passOptionalNullableLongLongWithNonNullDefault(optional long long? arg = 7);
void passOptionalNullableUnsignedLongLongWithNonNullDefault(optional unsigned long long? arg = 7);
+ // void passOptionalNullableUnrestrictedFloatWithNonNullDefault(optional unrestricted float? arg = 0.0);
// void passOptionalNullableFloatWithNonNullDefault(optional float? arg = 0.0);
+ // void passOptionalNullableUnrestrictedDoubleWithNonNullDefault(optional unrestricted double? arg = 0.0);
// void passOptionalNullableDoubleWithNonNullDefault(optional double? arg = 0.0);
void passOptionalNullableStringWithNonNullDefault(optional DOMString? arg = "x");
void passOptionalNullableUsvstringWithNonNullDefault(optional USVString? arg = "x");
@@ -287,7 +311,9 @@ interface TestBinding {
void passVariadicUnsignedLong(unsigned long... args);
void passVariadicLongLong(long long... args);
void passVariadicUnsignedLongLong(unsigned long long... args);
+ void passVariadicUnrestrictedFloat(unrestricted float... args);
void passVariadicFloat(float... args);
+ void passVariadicUnrestrictedDouble(unrestricted double... args);
void passVariadicDouble(double... args);
void passVariadicString(DOMString... args);
void passVariadicUsvstring(USVString... args);