mirror of
https://github.com/servo/servo.git
synced 2025-08-02 12:10:29 +01:00
Add bindings support for unrestricted float/double values.
This commit is contained in:
parent
1f0291c4db
commit
2bf2c0020b
4 changed files with 62 additions and 3 deletions
|
@ -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:
|
||||
|
|
|
@ -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` |
|
||||
|
|
|
@ -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>) {}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue