{"ScriptPreparationCode":"class PredefinedError extends Error {\r\n foo = 5;\r\n bar = \u0022foo\u0022;\r\n}\r\n\r\nfunction throwShared() {\r\n throw new PredefinedError(\u0022Error message\u0022);\r\n}\r\n\r\nfunction throwAnon() {\r\n throw new class extends Error {\r\n foo = 5;\r\n bar = \u0022foo\u0022;\r\n }(\u0022Error message\u0022);\r\n}\r\n\r\nfunction throwExtended() {\r\n throw Object.assign(new Error(\u0022Error message\u0022), {\r\n foo: 5,\r\n bar: \u0022foo\u0022,\r\n });\r\n}","TestCases":[{"Name":"Anonymous redefined class","Code":"let x = 0;\r\ntry {\r\n throwAnon();\r\n} catch(e) {\r\n x \u002B= e.foo;\r\n}","IsDeferred":false},{"Name":"Predefined shared class","Code":"let x = 0;\r\ntry {\r\n throwShared();\r\n} catch(e) {\r\n x \u002B= e.foo;\r\n}","IsDeferred":false},{"Name":"Builtin error with assigned properties","Code":"let x = 0;\r\ntry {\r\n throwExtended();\r\n} catch(e) {\r\n x \u002B= e.foo;\r\n}","IsDeferred":false}]}