diff options
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 11 | ||||
-rw-r--r-- | components/script/dom/bindings/conversions.rs | 2 | ||||
-rw-r--r-- | components/script/dom/testbinding.rs | 26 | ||||
-rw-r--r-- | components/script/dom/webidls/TestBinding.webidl | 26 |
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); |