wut
whaaaat
no
over heeeere
wicked witch
{"ScriptPreparationCode":"let box = document.getElementById(\u0027box\u0027);\r\nlet missing = document.getElementById(\u0027missing\u0027);\r\nlet hiding = document.getElementById(\u0027hiding\u0027);\r\nlet misplaced = document.getElementById(\u0027misplaced\u0027);\r\nlet melting = document.getElementById(\u0027melting\u0027);","TestCases":[{"Name":"Offsets only","Code":"console.log(\u0027Box in DOM and visible: \u0027 \u002B (!!(box.offsetHeight || box.offsetWidth || box.offsetTop || box.offsetLeft || box.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));\r\nconsole.log(\u0027Missing in DOM and visible: \u0027 \u002B (!!(missing.offsetHeight || missing.offsetWidth || missing.offsetTop || missing.offsetLeft || missing.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));\r\nconsole.log(\u0027Hiding in DOM and visible: \u0027 \u002B (!!(hiding.offsetHeight || hiding.offsetWidth || hiding.offsetTop || hiding.offsetLeft || hiding.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));\r\nconsole.log(\u0027Misplaced in DOM and visible: \u0027 \u002B (!!(misplaced.offsetHeight || misplaced.offsetWidth || misplaced.offsetTop || misplaced.offsetLeft || misplaced.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));\r\nconsole.log(\u0027Melting in DOM and visible: \u0027 \u002B (!!(melting.offsetHeight || melting.offsetWidth || melting.offsetTop || melting.offsetLeft || melting.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));","IsDeferred":false},{"Name":"ComputedStyle only","Code":"let boxStyle = getComputedStyle(box);\r\nconsole.log(\u0027Box visible: \u0027 \u002B (boxStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 boxStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 boxStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));\r\nlet missingStyle = getComputedStyle(missing);\r\nconsole.log(\u0027Missing visible: \u0027 \u002B (missingStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 missingStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 missingStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));\r\nlet hidingStyle = getComputedStyle(hiding);\r\nconsole.log(\u0027Hiding visible: \u0027 \u002B (hidingStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 hidingStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 hidingStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));\r\nlet misplacedStyle = getComputedStyle(misplaced);\r\nconsole.log(\u0027Misplaced visible: \u0027 \u002B (misplacedStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 misplacedStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 misplacedStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));\r\nlet meltingStyle = getComputedStyle(melting);\r\nconsole.log(\u0027Melting visible: \u0027 \u002B (meltingStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 meltingStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 meltingStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));","IsDeferred":false},{"Name":"Offset then computedStyle","Code":"console.log(\u0027Box in DOM and visible: \u0027 \u002B (!!(box.offsetHeight || box.offsetWidth || box.offsetTop || box.offsetLeft || box.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));\r\nlet boxStyle = getComputedStyle(box);\r\nconsole.log(\u0027Box visible: \u0027 \u002B (boxStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 boxStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 boxStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));\r\n\r\nconsole.log(\u0027Missing in DOM and visible: \u0027 \u002B (!!(missing.offsetHeight || missing.offsetWidth || missing.offsetTop || missing.offsetLeft || missing.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));\r\nlet missingStyle = getComputedStyle(missing);\r\nconsole.log(\u0027Missing visible: \u0027 \u002B (missingStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 missingStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 missingStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));\r\n\r\nconsole.log(\u0027Hiding in DOM and visible: \u0027 \u002B (!!(hiding.offsetHeight || hiding.offsetWidth || hiding.offsetTop || hiding.offsetLeft || hiding.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));\r\nlet hidingStyle = getComputedStyle(hiding);\r\nconsole.log(\u0027Hiding visible: \u0027 \u002B (hidingStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 hidingStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 hidingStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));\r\n\r\nconsole.log(\u0027Misplaced in DOM and visible: \u0027 \u002B (!!(misplaced.offsetHeight || misplaced.offsetWidth || misplaced.offsetTop || misplaced.offsetLeft || misplaced.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));\r\nlet misplacedStyle = getComputedStyle(misplaced);\r\nconsole.log(\u0027Misplaced visible: \u0027 \u002B (misplacedStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 misplacedStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 misplacedStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));\r\n\r\nconsole.log(\u0027Melting in DOM and visible: \u0027 \u002B (!!(melting.offsetHeight || melting.offsetWidth || melting.offsetTop || melting.offsetLeft || melting.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));\r\nlet meltingStyle = getComputedStyle(melting);\r\nconsole.log(\u0027Melting visible: \u0027 \u002B (meltingStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 meltingStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 meltingStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));","IsDeferred":false},{"Name":"ComputedStyle then offset","Code":"let boxStyle = getComputedStyle(box);\r\nconsole.log(\u0027Box visible: \u0027 \u002B (boxStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 boxStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 boxStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));\r\nconsole.log(\u0027Box in DOM and visible: \u0027 \u002B (!!(box.offsetHeight || box.offsetWidth || box.offsetTop || box.offsetLeft || box.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));\r\n\r\nlet missingStyle = getComputedStyle(missing);\r\nconsole.log(\u0027Missing visible: \u0027 \u002B (missingStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 missingStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 missingStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));\r\nconsole.log(\u0027Missing in DOM and visible: \u0027 \u002B (!!(missing.offsetHeight || missing.offsetWidth || missing.offsetTop || missing.offsetLeft || missing.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));\r\n\r\nlet hidingStyle = getComputedStyle(hiding);\r\nconsole.log(\u0027Hiding visible: \u0027 \u002B (hidingStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 hidingStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 hidingStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));\r\nconsole.log(\u0027Hiding in DOM and visible: \u0027 \u002B (!!(hiding.offsetHeight || hiding.offsetWidth || hiding.offsetTop || hiding.offsetLeft || hiding.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));\r\n\r\nlet misplacedStyle = getComputedStyle(misplaced);\r\nconsole.log(\u0027Misplaced visible: \u0027 \u002B (misplacedStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 misplacedStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 misplacedStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));\r\nconsole.log(\u0027Misplaced in DOM and visible: \u0027 \u002B (!!(misplaced.offsetHeight || misplaced.offsetWidth || misplaced.offsetTop || misplaced.offsetLeft || misplaced.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));\r\n\r\nlet meltingStyle = getComputedStyle(melting);\r\nconsole.log(\u0027Melting visible: \u0027 \u002B (meltingStyle[\u0027display\u0027] !== \u0027none\u0027 \u0026\u0026 meltingStyle[\u0027visibility\u0027] !== \u0027hidden\u0027 \u0026\u0026 meltingStyle[\u0027opacity\u0027] \u003E 0.1 ? \u0027true\u0027 : \u0027false\u0027));\r\nconsole.log(\u0027Melting in DOM and visible: \u0027 \u002B (!!(melting.offsetHeight || melting.offsetWidth || melting.offsetTop || melting.offsetLeft || melting.offsetParent) ? \u0027true\u0027 : \u0027false\u0027));","IsDeferred":false}]}