File tree Expand file tree Collapse file tree 3 files changed +67
-2
lines changed
Expand file tree Collapse file tree 3 files changed +67
-2
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,11 @@ fn app(cx: Scope) -> Element {
1818 disabled: "{disabled}" ,
1919 "lower button"
2020 }
21+
22+ input {
23+ value: "false" ,
24+ }
25+
2126 }
2227 } )
2328}
Original file line number Diff line number Diff line change @@ -369,8 +369,38 @@ class Interpreter {
369369 node . innerHTML = value ;
370370 break ;
371371 default :
372+
373+ const bool_attrs = [
374+ "allowfullscreen" ,
375+ "allowpaymentrequest" ,
376+ "async" ,
377+ "autofocus" ,
378+ "autoplay" ,
379+ "checked" ,
380+ "controls" ,
381+ "default" ,
382+ "defer" ,
383+ "disabled" ,
384+ "formnovalidate" ,
385+ "hidden" ,
386+ "ismap" ,
387+ "itemscope" ,
388+ "loop" ,
389+ "multiple" ,
390+ "muted" ,
391+ "nomodule" ,
392+ "novalidate" ,
393+ "open" ,
394+ "playsinline" ,
395+ "readonly" ,
396+ "required" ,
397+ "reversed" ,
398+ "selected" ,
399+ "truespeed" ,
400+ ]
401+
372402 // https://github.com/facebook/react/blob/8b88ac2592c5f555f315f9440cbb665dd1e7457a/packages/react-dom/src/shared/DOMProperty.js#L352-L364
373- if ( value == "false" && name != "capture" && name != "download" ) {
403+ if ( value == "false" && bool_attrs . indexOf ( name ) ) {
374404 node . removeAttribute ( name ) ;
375405 } else {
376406 node . setAttribute ( name , value ) ;
Original file line number Diff line number Diff line change @@ -348,8 +348,38 @@ impl WebsysDom {
348348 }
349349 }
350350 _ => {
351+
352+ let bool_attrs = vec ! [
353+ "allowfullscreen" ,
354+ "allowpaymentrequest" ,
355+ "async" ,
356+ "autofocus" ,
357+ "autoplay" ,
358+ "checked" ,
359+ "controls" ,
360+ "default" ,
361+ "defer" ,
362+ "disabled" ,
363+ "formnovalidate" ,
364+ "hidden" ,
365+ "ismap" ,
366+ "itemscope" ,
367+ "loop" ,
368+ "multiple" ,
369+ "muted" ,
370+ "nomodule" ,
371+ "novalidate" ,
372+ "open" ,
373+ "playsinline" ,
374+ "readonly" ,
375+ "required" ,
376+ "reversed" ,
377+ "selected" ,
378+ "truespeed" ,
379+ ] ;
380+
351381 // https://github.com/facebook/react/blob/8b88ac2592c5f555f315f9440cbb665dd1e7457a/packages/react-dom/src/shared/DOMProperty.js#L352-L364
352- if value == "false" && ( ( name != "capture" ) && ( name != "download" ) ) {
382+ if value == "false" && bool_attrs . contains ( & name) {
353383 if let Some ( el) = node. dyn_ref :: < Element > ( ) {
354384 let _ = el. remove_attribute ( name) ;
355385 }
You can’t perform that action at this time.
0 commit comments