
PASS SecurityPolicyViolationEvent constructor should throw with no parameters 
PASS SecurityPolicyViolationEvent constructor works with an init dict 
FAIL SecurityPolicyViolationEvent constructor requires documentURI assert_throws: function "function () { new SecurityPolicyViolationEvent("securitypolicyviolation", {
          // documentURI: "http://example.com",
          referrer: "http://example.com",
          blockedURI: "http://example.com",
          violatedDirective: "default-src",
          effectiveDirective: "default-src",
          originalPolicy: "default-src 'none'",
          sourceFile: "example.js",
          sample: "<script>alert('1');</scr" + "ipt>",
          disposition: "enforce",
          statusCode: 200,
          lineNumber: 1,
          columnNumber: 1,
      })}" did not throw
FAIL SecurityPolicyViolationEvent constructor requires violatedDirective assert_throws: function "function () { new SecurityPolicyViolationEvent("securitypolicyviolation", {
          documentURI: "http://example.com",
          referrer: "http://example.com",
          blockedURI: "http://example.com",
          // violatedDirective: "default-src",
          effectiveDirective: "default-src",
          originalPolicy: "default-src 'none'",
          sourceFile: "example.js",
          sample: "<script>alert('1');</scr" + "ipt>",
          disposition: "enforce",
          statusCode: 200,
          lineNumber: 1,
          columnNumber: 1,
      })}" did not throw
FAIL SecurityPolicyViolationEvent constructor requires effectiveDirective assert_throws: function "function () { new SecurityPolicyViolationEvent("securitypolicyviolation", {
          documentURI: "http://example.com",
          referrer: "http://example.com",
          blockedURI: "http://example.com",
          violatedDirective: "default-src",
          // effectiveDirective: "default-src",
          originalPolicy: "default-src 'none'",
          sourceFile: "example.js",
          sample: "<script>alert('1');</scr" + "ipt>",
          disposition: "enforce",
          statusCode: 200,
          lineNumber: 1,
          columnNumber: 1,
      })}" did not throw
FAIL SecurityPolicyViolationEvent constructor requires originalPolicy assert_throws: function "function () { new SecurityPolicyViolationEvent("securitypolicyviolation", {
          documentURI: "http://example.com",
          referrer: "http://example.com",
          blockedURI: "http://example.com",
          violatedDirective: "default-src",
          effectiveDirective: "default-src",
          // originalPolicy: "default-src 'none'",
          sourceFile: "example.js",
          sample: "<script>alert('1');</scr" + "ipt>",
          disposition: "enforce",
          statusCode: 200,
          lineNumber: 1,
          columnNumber: 1,
      })}" did not throw
FAIL SecurityPolicyViolationEvent constructor requires disposition assert_throws: function "function () { new SecurityPolicyViolationEvent("securitypolicyviolation", {
          documentURI: "http://example.com",
          referrer: "http://example.com",
          blockedURI: "http://example.com",
          violatedDirective: "default-src",
          effectiveDirective: "default-src",
          originalPolicy: "default-src 'none'",
          sourceFile: "example.js",
          sample: "<script>alert('1');</scr" + "ipt>",
          // disposition: "enforce",
          statusCode: 200,
          lineNumber: 1,
          columnNumber: 1,
      })}" did not throw
FAIL SecurityPolicyViolationEvent constructor requires statusCode assert_throws: function "function () { new SecurityPolicyViolationEvent("securitypolicyviolation", {
          documentURI: "http://example.com",
          referrer: "http://example.com",
          blockedURI: "http://example.com",
          violatedDirective: "default-src",
          effectiveDirective: "default-src",
          originalPolicy: "default-src 'none'",
          sourceFile: "example.js",
          sample: "<script>alert('1');</scr" + "ipt>",
          disposition: "enforce",
          // statusCode: 200,
          lineNumber: 1,
          columnNumber: 1,
      })}" did not throw
PASS SecurityPolicyViolationEvent constructor does not require referrer 
PASS SecurityPolicyViolationEvent constructor does not require blockedURI 
PASS SecurityPolicyViolationEvent constructor does not require sourceFile 
PASS SecurityPolicyViolationEvent constructor does not require sample 
PASS SecurityPolicyViolationEvent constructor does not require lineNumber 
PASS SecurityPolicyViolationEvent constructor does not require columnNumber 

