Merge pull request #548 from mnaza/fix/cssstyledeclaration-global-546
fix(js): expose CSSStyleDeclaration as a real global interface
This commit is contained in:
2 files changed
+20
No files matched your search
@@ -3552,6 +3552,20 @@ mod tests {
|
||||
assert_eq!(kb, serde_json::json!(true));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn cssstyledeclaration_is_a_usable_global_interface() {
|
||||
// CSSStyleDeclaration was pre-declared non-enumerable but never assigned
|
||||
// a value (the only WebIDL interface missing its globalThis.X = X line),
|
||||
// so it was `undefined` while `'CSSStyleDeclaration' in window` was true,
|
||||
// and `el.style instanceof CSSStyleDeclaration` threw. It must be a real
|
||||
// constructor, non-enumerable like a browser, and the type of .style.
|
||||
let mut rt = setup_runtime("<html><body></body></html>");
|
||||
let v = rt
|
||||
.evaluate("(function(){var d=Object.getOwnPropertyDescriptor(window,'CSSStyleDeclaration');return (typeof window.CSSStyleDeclaration)+'|'+(document.body.style instanceof CSSStyleDeclaration)+'|'+(d?d.enumerable:'missing');})()")
|
||||
.unwrap();
|
||||
assert_eq!(v, serde_json::json!("function|true|false"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_create_event_unknown_type_returns_event() {
|
||||
let mut rt = setup_runtime("<html><body></body></html>");
|
||||
|
||||
Reference in new issue
Block a user