reflected-integer-attributes.html 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. <!DOCTYPE html>
  2. <script src="../include.js"></script>
  3. <script>
  4. function setPropertyAndDumpValue(tagName, property, value) {
  5. const element = document.createElement(tagName);
  6. element[property] = value;
  7. println(`${tagName}.${property} after setting to ${value}: ${element[property]}`);
  8. }
  9. function testIntegerReflectedProperty(tagName, property) {
  10. setPropertyAndDumpValue(tagName, property, -1);
  11. setPropertyAndDumpValue(tagName, property, 20);
  12. setPropertyAndDumpValue(tagName, property, 2147483648);
  13. const element = document.createElement(tagName);
  14. element.setAttribute(property, "\v50");
  15. println(`${tagName}.${property} after setting to 50 with a leading vertical tab: ${element[property]}`);
  16. }
  17. test(() => {
  18. for (const tagName of ["img", "marquee", "object"]) {
  19. for (const property of ["hspace", "vspace"]) {
  20. testIntegerReflectedProperty(tagName, property);
  21. }
  22. }
  23. for (const tagName of ["source", "video"]) {
  24. for (const property of ["width", "height"]) {
  25. testIntegerReflectedProperty(tagName, property);
  26. }
  27. }
  28. });
  29. </script>