Tests the properties of the SVGException object.

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


PASS e.toString() is "Error: SVG_INVALID_VALUE_ERR: DOM SVG Exception 1"
PASS Object.prototype.toString.call(e) is "[object SVGException]"
PASS Object.prototype.toString.call(e.__proto__) is "[object SVGExceptionPrototype]"
PASS e.constructor.toString() is "[object SVGExceptionConstructor]"
PASS e.constructor is window.SVGException
PASS e.SVG_WRONG_TYPE_ERR is e.constructor.SVG_WRONG_TYPE_ERR
PASS e.SVG_WRONG_TYPE_ERR is 0
PASS e.SVG_INVALID_VALUE_ERR is e.constructor.SVG_INVALID_VALUE_ERR
PASS e.SVG_INVALID_VALUE_ERR is 1
PASS e.SVG_MATRIX_NOT_INVERTABLE is e.constructor.SVG_MATRIX_NOT_INVERTABLE
PASS e.SVG_MATRIX_NOT_INVERTABLE is 2
PASS successfullyParsed is true

TEST COMPLETE

