| <!DOCTYPE html> |
| |
| <script src="../../resources/js-test.js"></script> |
| |
| <script> |
| description("Passes if it doesn't crash and the child is not in the id map"); |
| |
| var script = document.createElement("script"); |
| script.type = "dont-execute"; |
| script.textContent = "script.remove()"; |
| child = document.createElement("div"); |
| child.id = "child"; |
| script.appendChild(child); |
| |
| // The script won't execute here because the type is invalid, but it also won't |
| // get marked as being already run, so changing the children later will run it. |
| document.documentElement.appendChild(script); |
| |
| // Per the spec setting the type has no effect |
| script.type = ""; |
| |
| // but changing the children *will* execute the script now that the type is |
| // is valid. |
| child.remove(); |
| |
| child = null; |
| gc(); |
| |
| shouldBeNull("document.getElementById('child')"); |
| </script> |