This test checks for proper parsing of the async attribute on HTML script tags.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS isAsync('s0') is false
PASS isAsync('s1') is true
PASS isAsync('s2') is true
PASS isAsync('s3') is true
PASS isAsync('s4') is true
PASS isAsync('s5') is true
PASS isAsync('s6') is true
PASS isAsync('s7') is true
PASS isAsync('s8') is false
PASS isDynamicallyInsertedScriptAsync(true) is true
PASS isDynamicallyInsertedScriptAsync(false) is false
PASS isDynamicallyInsertedScriptAsync("async") is true
PASS isDynamicallyInsertedScriptAsync(null) is true
PASS successfullyParsed is true

TEST COMPLETE

