aboutsummaryrefslogtreecommitdiffstats
path: root/website/json/ch13.json
diff options
context:
space:
mode:
Diffstat (limited to 'website/json/ch13.json')
-rw-r--r--website/json/ch13.json2
1 files changed, 1 insertions, 1 deletions
diff --git a/website/json/ch13.json b/website/json/ch13.json
index 28492ba09..011d9e0c2 100644
--- a/website/json/ch13.json
+++ b/website/json/ch13.json
@@ -1 +1 @@
-{"testsCollection":{"name":"Chapter - ch13","numTests":"200","tests":[{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTEuanMNCiAqIEBkZXNjcmlwdGlvbiAxMy4wIC0gbXVsdGlwbGUgbmFtZXMgaW4gb25lIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGlzIG5vdCBhbGxvd2VkLCB0d28gZnVuY3Rpb24gbmFtZXMNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiZnVuY3Rpb24geCwgeSgpIHt9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"13.0 - multiple names in one function declaration is not allowed, two function names","path":"TestCases/ch13/13.0/13.0-1.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTEwLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gdGhlIGNvZGUgb2YgdGhpcyBGdW5jdGlvbkJvZHkgd2l0aCBhbiBpbm5lciBmdW5jdGlvbiBjb250YWlucyBhIFVzZSBTdHJpY3QgRGlyZWN0aXZlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gXzEzXzBfMTBfZnVuKCkgew0KICAgICAgICAgICAgZnVuY3Rpb24gXzEzXzBfMTBfaW5uZXIoKSB7DQogICAgICAgICAgICAgICAgInVzZSBzdHJpY3QiOw0KICAgICAgICAgICAgICAgIGV2YWwoImV2YWwgPSA0MjsiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIF8xM18wXzEwX2lubmVyKCk7DQogICAgICAgIH07DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBfMTNfMF8xMF9mdW4oKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when the code of this FunctionBody with an inner function contains a Use Strict Directive","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-10-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTExLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gdGhlIGNvZGUgb2YgdGhpcyBGdW5jdGlvbkJvZHkgd2l0aCBhbiBpbm5lciBmdW5jdGlvbiB3aGljaCBpcyBpbiBzdHJpY3QgbW9kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIF8xM18wXzExX2Z1bigpIHsNCiAgICAgICAgICAgICJ1c2Ugc3RyaWN0IjsNCiAgICAgICAgICAgIGZ1bmN0aW9uIF8xM18wXzExX2lubmVyKCkgew0KICAgICAgICAgICAgICAgIGV2YWwoImV2YWwgPSA0MjsiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIF8xM18wXzExX2lubmVyKCk7DQogICAgICAgIH07DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBfMTNfMF8xMV9mdW4oKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when the code of this FunctionBody with an inner function which is in strict mode","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-11-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTEyLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIG5vdCBldmFsdWF0ZWQgYXMgc3RyaWN0IG1vZGUgY29kZSB3aGVuIGEgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY29udGFpbmVkIGluIHN0cmljdCBtb2RlIGNvZGUgYW5kIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBib2R5IGlzIG5vdCBzdHJpY3QNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHZhciBfMTNfMF8xMl9mdW4gPSBuZXcgRnVuY3Rpb24oIiAiLCJldmFsID0gNDI7Iik7DQogICAgICAgIF8xM18wXzEyX2Z1bigpOw0KICAgICAgICByZXR1cm4gdHJ1ZTsNCg0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is not evaluated as strict mode code when a Function constructor is contained in strict mode code and the function constructor body is not strict","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-12-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTEzLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gdGhlIGZ1bmN0aW9uIGJvZHkgb2YgYSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBiZWdpbnMgd2l0aCBhIFN0cmljdCBEaXJlY3RpdmUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICANCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoInZhciBfMTNfMF8xM19mdW4gPSBuZXcgRnVuY3Rpb24oXCIgXCIsIFwiJ3VzZSBzdHJpY3QnOyBldmFsID0gNDI7XCIpOyBfMTNfMF8xM19mdW4oKTsiKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when the function body of a Function constructor begins with a Strict Directive","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-13-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTE0LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gdGhlIGZ1bmN0aW9uIGJvZHkgb2YgYSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBjb250YWlucyBhIFN0cmljdCBEaXJlY3RpdmUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgdmFyIF8xM18wXzE0X2Z1biA9IG5ldyBGdW5jdGlvbigiICIsICIndXNlIHN0cmljdCc7IGV2YWwgPSA0MjsgIik7DQogICAgICAgICAgICBfMTNfMF8xNF9mdW4oKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when the function body of a Function constructor contains a Strict Directive","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-14-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTE1LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gYSBGdW5jdGlvbkRlY2xhcmF0aW9uIGlzIGNvbnRhaW5lZCBpbiBzdHJpY3QgbW9kZSBjb2RlIHdpdGhpbiBldmFsIGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiJ3VzZSBzdHJpY3QnOyBmdW5jdGlvbiBfMTNfMF8xNV9mdW4oKSB7ZXZhbCA9IDQyO307Iik7DQogICAgICAgICAgICBfMTNfMF8xNV9mdW4oKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when a FunctionDeclaration is contained in strict mode code within eval code","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-15-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTE2LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gYSBGdW5jdGlvbkV4cHJlc3Npb24gaXMgY29udGFpbmVkIGluIHN0cmljdCBtb2RlIGNvZGUgd2l0aGluIGV2YWwgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCIndXNlIHN0cmljdCc7IHZhciBfMTNfMF8xNl9mdW4gPSBmdW5jdGlvbiAoKSB7ZXZhbCA9IDQyO307Iik7DQogICAgICAgICAgICBfMTNfMF8xNl9mdW4oKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when a FunctionExpression is contained in strict mode code within eval code","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-16-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTE3LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIG5vdCBldmFsdWF0ZWQgYXMgc3RyaWN0IG1vZGUgY29kZSB3aGVuIGEgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY29udGFpbmVkIGluIHN0cmljdCBtb2RlIGNvZGUgd2l0aGluIGV2YWwgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGV2YWwoIid1c2Ugc3RyaWN0JzsgdmFyIF8xM18wXzE3X2Z1biA9IG5ldyBGdW5jdGlvbignZXZhbCA9IDQyOycpOyBfMTNfMF8xN19mdW4oKTsiKTsNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is not evaluated as strict mode code when a Function constructor is contained in strict mode code within eval code","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-17-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTIuanMNCiAqIEBkZXNjcmlwdGlvbiAxMy4wIC0gbXVsdGlwbGUgbmFtZXMgaW4gb25lIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGlzIG5vdCBhbGxvd2VkLCB0aHJlZSBmdW5jdGlvbiBuYW1lcw0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiB4LHkseigpe30iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"13.0 - multiple names in one function declaration is not allowed, three function names","path":"TestCases/ch13/13.0/13.0-2.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTMuanMNCiAqIEBkZXNjcmlwdGlvbiAxMy4wIC0gcHJvcGVydHkgbmFtZXMgaW4gZnVuY3Rpb24gZGVmaW5pdGlvbiBpcyBub3QgYWxsb3dlZCwgYWRkIGEgbmV3IHByb3BlcnR5IGludG8gb2JqZWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiZnVuY3Rpb24gb2JqLnR0KCkge307Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"13.0 - property names in function definition is not allowed, add a new property into object","path":"TestCases/ch13/13.0/13.0-3.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTQuanMNCiAqIEBkZXNjcmlwdGlvbiAxMy4wIC0gbXVsdGlwbGUgbmFtZXMgaW4gb25lIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGlzIG5vdCBhbGxvd2VkLCBhZGQgYSBuZXcgcHJvcGVydHkgaW50byBhIHByb3BlcnR5IHdoaWNoIGlzIGEgb2JqZWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KICAgICAgICBvYmoudHQgPSB7IGxlbjogMTAgfTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoImZ1bmN0aW9uIG9iai50dC5zcygpIHt9OyIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"13.0 - multiple names in one function declaration is not allowed, add a new property into a property which is a object","path":"TestCases/ch13/13.0/13.0-4.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTctcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdCBNb2RlIC0gU291cmNlRWxlbWVudHMgaXMgZXZhbHVhdGVkIGFzIHN0cmljdCBtb2RlIGNvZGUgd2hlbiB0aGUgY29kZSBvZiB0aGlzIEZ1bmN0aW9uRGVjbGFyYXRpb24gaXMgY29udGFpbmVkIGluIG5vbi1zdHJpY3QgbW9kZSBidXQgdGhlIGNhbGwgdG8gZXZhbCBpcyBhIGRpcmVjdCBjYWxsIGluIHN0cmljdCBtb2RlIGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiJ3VzZSBzdHJpY3QnOyBmdW5jdGlvbiBfMTNfMF83X2Z1bigpIHtldmFsID0gNDI7fTsiKTsNCiAgICAgICAgICAgIF8xM18wXzdfZnVuKCk7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when the code of this FunctionDeclaration is contained in non-strict mode but the call to eval is a direct call in strict mode code","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-7-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTgtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdCBNb2RlIC0gU291cmNlRWxlbWVudHMgaXMgZXZhbHVhdGVkIGFzIHN0cmljdCBtb2RlIGNvZGUgd2hlbiB0aGUgY29kZSBvZiB0aGlzIEZ1bmN0aW9uRXhwcmVzc2lvbiBpcyBjb250YWluZWQgaW4gbm9uLXN0cmljdCBtb2RlIGJ1dCB0aGUgY2FsbCB0byBldmFsIGlzIGEgZGlyZWN0IGNhbGwgaW4gc3RyaWN0IG1vZGUgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoInZhciBfMTNfMF84X2Z1biA9IGZ1bmN0aW9uICgpIHtldmFsID0gNDI7fTsiKTsNCiAgICAgICAgICAgIF8xM18wXzhfZnVuKCk7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when the code of this FunctionExpression is contained in non-strict mode but the call to eval is a direct call in strict mode code","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-8-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTktcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdCBNb2RlIC0gU291cmNlRWxlbWVudHMgaXMgZXZhbHVhdGVkIGFzIHN0cmljdCBtb2RlIGNvZGUgd2hlbiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gdGhhdCBpcyBjb250YWluZWQgaW4gc3RyaWN0IG1vZGUgY29kZSBoYXMgYW4gaW5uZXIgZnVuY3Rpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHZhciBfMTNfMF85X2Z1biA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIF8xM18wXzlfaW5uZXIoKSB7IGV2YWwoImV2YWwgPSA0MjsiKTsgfQ0KICAgICAgICAgICAgXzEzXzBfOV9pbm5lcigpOw0KICAgICAgICB9Ow0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgXzEzXzBfOV9mdW4oKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when a FunctionDeclaration that is contained in strict mode code has an inner function","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-9-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMC8xM180LTE3Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gYSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjb250YWluZWQgaW4gc3RyaWN0IG1vZGUgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBOb3RFYXJseUVycm9yDQogKi8NCg0KInVzZSBzdHJpY3QiOw0KdmFyIF8xM180XzE3X2Z1biA9IG5ldyBGdW5jdGlvbignZXZhbCA9IDQyOycpOw0KdGhyb3cgTm90RWFybHlFcnJvcjsNCg==","commentary":"","description":"Strict Mode - SourceElements is evaluated as strict mode code when a Function constructor is contained in strict mode code","negative":"NotEarlyError","onlyStrict":"","path":"TestCases/ch13/13.0/13_4-17gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMC8xM180LTVncy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdCBNb2RlIC0gU291cmNlRWxlbWVudHMgaXMgZXZhbHVhdGVkIGFzIHN0cmljdCBtb2RlIGNvZGUgd2hlbiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gaXMgY29udGFpbmVkIGluIHN0cmljdCBtb2RlIGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKiBAbmVnYXRpdmUgXigoPyFOb3RFYXJseUVycm9yKS4pKiQNCiAqLw0KDQoidXNlIHN0cmljdCI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KZnVuY3Rpb24gXzEzXzBfNF81X2Z1bigpIHsgZXZhbCA9IDQyOyB9Ow0K","commentary":"","description":"Strict Mode - SourceElements is evaluated as strict mode code when a FunctionDeclaration is contained in strict mode code","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch13/13.0/13_4-5gs.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAieD1mdW5jdGlvbiB5KCl7fSIgc3RhdGVtZW50IGRvZXMgbm90IHN0b3JlIGEgcmVmZXJlbmNlIHRvIHRoZSBuZXcgZnVuY3Rpb24gaW4gdGhlIHZhcmFpYmxlIHkoSWRlbnRpZmllcikKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMS5qcwogKiBAZGVzY3JpcHRpb24gQ2hlY2tpbmcgdGhlIHR5cGUgb2YgeQogKi8KCnZhciBfX2Z1bmMgPSBmdW5jdGlvbiBfX2V4cF9fZnVuYygpe3JldHVybiAwO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZnVuYyAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHR5cGVvZiBfX2V4cF9fZnVuYyAhPT0gInVuZGVmaW5lZCIpewogICAgJEVSUk9SKCcjMjogdHlwZW9mIF9fZXhwX19mdW5jID09PSAidW5kZWZpbmVkIi4gQWN0dWFsOiB0eXBlb2YgX19leHBfX2Z1bmMgPT09Jyt0eXBlb2YgX19leHBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"\"x=function y(){}\" statement does not store a reference to the new function in the varaible y(Identifier)","description":"Checking the type of y","path":"TestCases/ch13/13.0/S13_A1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBpcyBhIGRhdGEKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTAuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nIGZ1bmN0aW9uIGFzIGEgcHJvcGVydHkgb2YgYW4gb2JqZWN0CiAqLwoKZnVuY3Rpb24gX196aWdneV9fZnVuYygpe3JldHVybiAiemlnZ3kgc3RhcmR1c3QifQoKdmFyIF9fbXVzaWNfYm94PXt9OwoKX19tdXNpY19ib3guemlnZ3kgPSBfX3ppZ2d5X19mdW5jOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjCmlmICh0eXBlb2YgX19tdXNpY19ib3guemlnZ3kgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX211c2ljX2JveC56aWdneSA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19tdXNpY19ib3guemlnZ3kgPT09Jyt0eXBlb2YgX19tdXNpY19ib3guemlnZ3kpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19tdXNpY19ib3guemlnZ3koKSAhPT0gInppZ2d5IHN0YXJkdXN0IikgewoJJEVSUk9SKCcjMjogX19tdXNpY19ib3guemlnZ3koKSA9PT0gInppZ2d5IHN0YXJkdXN0Ii4gQWN0dWFsOiBfX211c2ljX2JveC56aWdneSgpID09PScrX19tdXNpY19ib3guemlnZ3koKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Function is a data","description":"Using function as a property of an object","path":"TestCases/ch13/13.0/S13_A10.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTFfVDEuanMKICogQGRlc2NyaXB0aW9uIFJldHVybmluZyByZXN1bHQgb2YgImRlbGV0ZSBhcmd1bWVudHMiCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7IHJldHVybiBkZWxldGUgYXJndW1lbnRzO30KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygiQSIsIkIiLDEsMikpIHsKCSRFUlJPUignIzE6IGFyZ3VtZW50cyBwcm9wZXJ0eSBoYXMgYXR0cmlidXRlIHsgRG9udERlbGV0ZSB9Jyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Since arguments property has attribute { DontDelete }, only its elements can be deleted","description":"Returning result of \"delete arguments\"","path":"TestCases/ch13/13.0/S13_A11_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTFfVDIuanMKICogQGRlc2NyaXB0aW9uIENoZWNraW5nIGlmIGRlbGV0aW5nIHRoZSBhcmd1bWVudHMgcHJvcGVydHkgZmFpbHMgYW5kIHRoZW4gcmV0dXJuaW5nIGl0CiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7IAogICAgZGVsZXRlIGFyZ3VtZW50czsKICAgIHJldHVybiBhcmd1bWVudHM7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2Z1bmMoIkEiLCJCIiwxLDIpICE9PSAib2JqZWN0IikgewoJJEVSUk9SKCcjMTogYXJndW1lbnRzIHByb3BlcnR5IGhhcyBhdHRyaWJ1dGUgeyBEb250RGVsZXRlIH0nKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Since arguments property has attribute { DontDelete }, only its elements can be deleted","description":"Checking if deleting the arguments property fails and then returning it","path":"TestCases/ch13/13.0/S13_A11_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTFfVDMuanMKICogQGRlc2NyaXB0aW9uIERlbGV0aW5nIGFyZ3VtZW50c1tpXSBhbmQgcmV0dXJuaW5nIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB3YXNfZGVsPWZhbHNlOwogICAgZm9yIChpPTA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspCiAgICAgICB3YXNfZGVsPSB3YXNfZGVsIHx8IGRlbGV0ZSBhcmd1bWVudHNbaV07CiAgICByZXR1cm4gd2FzX2RlbDsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIV9fZnVuYygiQSIsIkIiLDEsMikpIHsKCSRFUlJPUignIzE6IFNpbmNlIGFyZ3VtZW50cyBwcm9wZXJ0eSBoYXMgYXR0cmlidXRlIHsgRG9udERlbGV0ZSB9IGVsZW1lbnRzIG9mIGFyZ3VtZW50cyBjYW4gYmUgZGVsZXRlZCcpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Since arguments property has attribute { DontDelete }, only its elements can be deleted","description":"Deleting arguments[i] and returning result of the operation","path":"TestCases/ch13/13.0/S13_A11_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTFfVDQuanMKICogQGRlc2NyaXB0aW9uIERlbGV0aW5nIGFyZ3VtZW50c1tpXSBhbmQgY2hlY2tpbmcgdGhlIHR5cGUgb2YgYXJndW1lbnRzW2ldCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICBpc191bmRlZj10cnVlOwogICAgZm9yIChpPTA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspCiAgICB7CiAgICAgICAgZGVsZXRlIGFyZ3VtZW50c1tpXTsKICAgICAgICBpc191bmRlZj0gaXNfdW5kZWYgJiYgKHR5cGVvZiBhcmd1bWVudHNbaV0gPT09ICJ1bmRlZmluZWQiKTsKICAgIH07ICAgICAgIAogICAgcmV0dXJuIGlzX3VuZGVmOwp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIV9fZnVuYygiQSIsIkIiLDEsMikpIHsKCSRFUlJPUignIzE6IFNpbmNlIGFyZ3VtZW50cyBwcm9wZXJ0eSBoYXMgYXR0cmlidXRlIHsgRG9udERlbGV0ZSB9LCBidXQgZWxlbWVudHMgb2YgYXJndW1lbnRzIGNhbiBiZSBkZWxldGVkJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Since arguments property has attribute { DontDelete }, only its elements can be deleted","description":"Deleting arguments[i] and checking the type of arguments[i]","path":"TestCases/ch13/13.0/S13_A11_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW4gZ2xvYmFsIG9yIGZ1bmN0aW9uIHNjb3BlIGFyZSB7RG9udERlbGV0ZX0KICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTJfVDEuanMKICogQGRlc2NyaXB0aW9uIENoZWNraW5nIGlmIGRlbGV0aW5nIGEgZnVuY3Rpb24gdGhhdCBpcyBkZWNsYXJlZCBpbiBnbG9iYWwgc2NvcGUgZmFpbHMKICovCgpBTElWRT0iTGV0b3YgaXMgYWxpdmUiCgpmdW5jdGlvbiBfX2Z1bmMoKXsKICAgIHJldHVybiBBTElWRTsKfTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKGRlbGV0ZSBfX2Z1bmMpIHsKCSRFUlJPUignIzE6IGRlbGV0ZSBfX2Z1bmMgcmV0dXJuaW5nIGZhbHNlJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2Z1bmMoKSAhPT0gQUxJVkUpIHsKCSRFUlJPUignIzI6IF9fZnVuYygpID09PSBBTElWRS4gQWN0dWFsOiBfX2Z1bmMoKSA9PT0nK19fZnVuYygpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Function declarations in global or function scope are {DontDelete}","description":"Checking if deleting a function that is declared in global scope fails","path":"TestCases/ch13/13.0/S13_A12_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW4gZ2xvYmFsIG9yIGZ1bmN0aW9uIHNjb3BlIGFyZSB7RG9udERlbGV0ZX0KICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTJfVDIuanMKICogQGRlc2NyaXB0aW9uIENoZWNraW5nIGlmIGRlbGV0aW5nIGEgZnVuY3Rpb24gdGhhdCBpcyBkZWNsYXJlZCBpbiBmdW5jdGlvbiBzY29wZSBmYWlscwogKi8KCkFMSVZFPSJMZXRvdiBpcyBhbGl2ZSIKCmZ1bmN0aW9uIF9fY29udCgpewoKICAgIGZ1bmN0aW9uIF9fZnVuYygpewogICAgICAgIHJldHVybiBBTElWRTsKICAgIH07CiAgICAKICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgLy9DSEVDSyMxCiAgICBpZiAoZGVsZXRlIF9fZnVuYykgewogICAgCSRFUlJPUignIzE6IGRlbGV0ZSBfX2Z1bmMgcmV0dXJuaW5nIGZhbHNlJyk7CiAgICB9CiAgICAvLwogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAKICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgLy9DSEVDSyMyCiAgICBpZiAoX19mdW5jKCkgIT09IEFMSVZFKSB7CiAgICAJJEVSUk9SKCcjMjogX19mdW5jKCkgPT09IEFMSVZFLiBBY3R1YWw6IF9fZnVuYygpID09PScrX19mdW5jKCkpOwogICAgfQogICAgLy8KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwp9OwoKX19jb250KCk7Cgo=","commentary":"Function declarations in global or function scope are {DontDelete}","description":"Checking if deleting a function that is declared in function scope fails","path":"TestCases/ch13/13.0/S13_A12_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBEZWxldGluZyBhcmd1bWVudHNbaV0gbGVhZHMgdG8gYnJlYWtpbmcgdGhlIGNvbm5lY3Rpb24gdG8gbG9jYWwgcmVmZXJlbmNlCiAqCiAqIEBwYXRoIGNoMTMvMTMuMC9TMTNfQTEzX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWxldGluZyBhcmd1bWVudHNbaV0KICovCgpmdW5jdGlvbiBfX2Z1bmMoX19hcmcpewogIGRlbGV0ZSBhcmd1bWVudHNbMF07CiAgaWYgKGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkKSB7CiAgICAkRVJST1IoJyMxLjE6IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkJyk7CiAgfQogIHJldHVybiBfX2FyZzsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKDEpICE9PSAxKSB7CgkkRVJST1IoJyMxLjI6IF9fZnVuYygxKSA9PT0gMS4gQWN0dWFsOiBfX2Z1bmMoMSkgPT09JytfX2Z1bmMoMSkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Deleting arguments[i] leads to breaking the connection to local reference","description":"Deleting arguments[i]","path":"TestCases/ch13/13.0/S13_A13_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBEZWxldGluZyBhcmd1bWVudHNbaV0gbGVhZHMgdG8gYnJlYWtpbmcgdGhlIGNvbm5lY3Rpb24gdG8gbG9jYWwgcmVmZXJlbmNlCiAqCiAqIEBwYXRoIGNoMTMvMTMuMC9TMTNfQTEzX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGFuZ2luZyBhcmd1bWVudHMgdmFsdWUgYW5kIHRoZW4gZGVsZXRpbmcgdGhlIGFyZ3VtZW50CiAqLwoKZnVuY3Rpb24gX19mdW5jKF9fYXJnKXsKICBfX2FyZyA9IDI7CiAgZGVsZXRlIGFyZ3VtZW50c1swXTsKICBpZiAoYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQpIHsKICAgICRFUlJPUignIzEuMTogYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQnKTsKICB9CiAgcmV0dXJuIF9fYXJnOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoMSkgIT09IDIpIHsKCSRFUlJPUignIzEuMjogX19mdW5jKDEpID09PSAyLiBBY3R1YWw6IF9fZnVuYygxKSA9PT0nK19fZnVuYygxKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Deleting arguments[i] leads to breaking the connection to local reference","description":"Changing arguments value and then deleting the argument","path":"TestCases/ch13/13.0/S13_A13_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBEZWxldGluZyBhcmd1bWVudHNbaV0gbGVhZHMgdG8gYnJlYWtpbmcgdGhlIGNvbm5lY3Rpb24gdG8gbG9jYWwgcmVmZXJlbmNlCiAqCiAqIEBwYXRoIGNoMTMvMTMuMC9TMTNfQTEzX1QzLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGFuZ2luZyBhcmd1bWVudCB2YWx1ZSwgZGVsZXRpbmcgdGhlIGFyZ3VtZW50IGFuZCB0aGVuIGRlZmluaW5nIGEgbmV3IHZhbHVlIGZvciBhcmd1bWVudHNbaV0KICovCgpmdW5jdGlvbiBfX2Z1bmMoX19hcmcpewogIF9fYXJnID0gMjsKICBkZWxldGUgYXJndW1lbnRzWzBdOwogIGlmIChhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCkgewogICAgJEVSUk9SKCcjMS4xOiBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCcpOwogIH0KICBhcmd1bWVudHNbMF0gPSAiQSI7CiAgaWYgKGFyZ3VtZW50c1swXSAhPT0gIkEiKSB7CiAgICAkRVJST1IoJyMxLjI6IGFyZ3VtZW50c1swXSA9PT0gIkEiJyk7CiAgfQogIHJldHVybiBfX2FyZzsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKDEpICE9PSAyKSB7CgkkRVJST1IoJyMxLjM6IF9fZnVuYygxKSA9PT0gMi4gQWN0dWFsOiBfX2Z1bmMoMSkgPT09JytfX2Z1bmMoMSkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Deleting arguments[i] leads to breaking the connection to local reference","description":"Changing argument value, deleting the argument and then defining a new value for arguments[i]","path":"TestCases/ch13/13.0/S13_A13_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBVbmljb2RlIHN5bWJvbHMgaW4gZnVuY3Rpb24gbmFtZSBhcmUgYWxsb3dlZAogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExNC5qcwogKiBAZGVzY3JpcHRpb24gRGVmaW5pbmcgZnVuY3Rpb24gbmFtZSB3aXRoIHVuaWNvZGUgc3ltYm9scwogKi8KCmV2YWwoImZ1bmN0aW9uIF9fZnVuY1x1MDA0MShfX2FyZyl7cmV0dXJuIF9fYXJnO307Iik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19mdW5jQSAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMTogdW5pY29kZSBzeW1ib2xzIGluIGZ1bmN0aW9uIG5hbWUgYXJlIGFsbG93ZWQnKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Unicode symbols in function name are allowed","description":"Defining function name with unicode symbols","path":"TestCases/ch13/13.0/S13_A14.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExNV9UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiX19mdW5jKGFyZ3VtZW50cykiCiAqLwoKZnVuY3Rpb24gX19mdW5jKGFyZ3VtZW50cyl7CiAgICByZXR1cm4gYXJndW1lbnRzOwp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKDQyKSAhPT0gNDIpIHsKCSRFUlJPUignIzE6ICJhcmd1bWVudHMiIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cycpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Declaring a function with \"__func(arguments)\"","path":"TestCases/ch13/13.0/S13_A15_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExNV9UMi5qcwogKiBAZGVzY3JpcHRpb24gT3ZlcnJpZGluZyBhcmd1bWVudHMgd2l0aGluIGZ1bmN0aW9ucyBib2R5CiAqLwoKVEhFX0FOU1dFUj0iQW5zd2VyIHRvIExpZmUsIHRoZSBVbml2ZXJzZSwgYW5kIEV2ZXJ5dGhpbmciOwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB2YXIgYXJndW1lbnRzID0gVEhFX0FOU1dFUjsKICAgIHJldHVybiBhcmd1bWVudHM7Cn07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoNDIsNDIsNDIpICE9PSBUSEVfQU5TV0VSKSB7CgkkRVJST1IoJyMxOiAgImFyZ3VtZW50cyIgdmFyaWFibGUgb3ZlcnJpZGVzIEFjdGl2YXRpb25PYmplY3QuYXJndW1lbnRzJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Overriding arguments within functions body","path":"TestCases/ch13/13.0/S13_A15_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExNV9UMy5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgdmFyaWFibGUgbmFtZWQgd2l0aCAiYXJndW1lbnRzIiB3aXRob3V0IGEgZnVuY3Rpb24KICovCgpUSEVfQU5TV0VSPSJBbnN3ZXIgdG8gTGlmZSwgdGhlIFVuaXZlcnNlLCBhbmQgRXZlcnl0aGluZyI7Cgp2YXIgYXJndW1lbnRzID0gVEhFX0FOU1dFUjsKCmZ1bmN0aW9uIF9fZnVuYyhhcmd1bWVudHMpewogICAgcmV0dXJuIGFyZ3VtZW50czsKICAgIAp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZnVuYygpICE9PSAidW5kZWZpbmVkIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYygpID09PSAidW5kZWZpbmVkIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jKCkgPT09Jyt0eXBlb2YgX19mdW5jKCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCJUaGUgVWx0aW1hdGUgUXVlc3Rpb24iKSAhPT0gIlRoZSBVbHRpbWF0ZSBRdWVzdGlvbiIpIHsKCSRFUlJPUignIzI6IF9fZnVuYygiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIikgPT09ICJUaGUgVWx0aW1hdGUgUXVlc3Rpb24iLiBBY3R1YWw6IF9fZnVuYygiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIik9PT0nK19fZnVuYygiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIikpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Declaring a variable named with \"arguments\" without a function","path":"TestCases/ch13/13.0/S13_A15_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExNV9UNC5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgdmFyaWFibGUgbmFtZWQgd2l0aCAiYXJndW1lbnRzIiBhbmQgZm9sbG93aW5nIGEgInJldHVybiIgc3RhdGVtZW50IHdpdGhpbiBhIGZ1bmN0aW9uIGJvZHkKICovCgpUSEVfQU5TV0VSPSJBbnN3ZXIgdG8gTGlmZSwgdGhlIFVuaXZlcnNlLCBhbmQgRXZlcnl0aGluZyI7CgpmdW5jdGlvbiBfX2Z1bmMoKXsKICAgIHJldHVybiB0eXBlb2YgYXJndW1lbnRzOwogICAgdmFyIGFyZ3VtZW50cyA9IFRIRV9BTlNXRVI7Cn07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoNDIsNDIsNDIpICE9PSAib2JqZWN0IikgewoJJEVSUk9SKCcjMTogX19mdW5jKDQyLDQyLDQyKSA9PT0gIm9iamVjdCIuIEFjdHVhbDogX19mdW5jKDQyLDQyLDQyKT09PScrX19mdW5jKDQyLDQyLDQyKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Declaring a variable named with \"arguments\" and following a \"return\" statement within a function body","path":"TestCases/ch13/13.0/S13_A15_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExNV9UNS5qcwogKiBAZGVzY3JpcHRpb24gQ3JlYXRpbmcgYSB2YXJpYWJsZSBuYW1lZCB3aXRoICJhcmd1bWVudHMiIHdpdGhvdXQgYSBmdW5jdGlvbgogKi8KClRIRV9BTlNXRVI9IkFuc3dlciB0byBMaWZlLCB0aGUgVW5pdmVyc2UsIGFuZCBFdmVyeXRoaW5nIjsKCnZhciBhcmd1bWVudHMgPSBUSEVfQU5TV0VSOwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICByZXR1cm4gYXJndW1lbnRzOwp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIF9fZnVuYygpID09PSBUSEVfQU5TV0VSKSB7CgkkRVJST1IoJyMxOiBfX2Z1bmMoKSAhPT0gVEhFX0FOU1dFUicpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCJUaGUgVWx0aW1hdGUgUXVlc3Rpb24iKSA9PT0gIlRoZSBVbHRpbWF0ZSBRdWVzdGlvbiIpIHsKCSRFUlJPUignIzI6IF9fZnVuYygiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIikgIT09ICJUaGUgVWx0aW1hdGUgUXVlc3Rpb24iJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Creating a variable named with \"arguments\" without a function","path":"TestCases/ch13/13.0/S13_A15_T5.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBBbnkgc2VwYXJhdG9ycyBhcmUgYWRtaXR0ZWQgYmV0d2VlbiBkZWNsYXJhdGlvbiBjaHVua3MKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTYuanMKICogQGRlc2NyaXB0aW9uIEluc2VydGluZyBzZXBhcmF0b3JzIGJldHdlZW4gZGVjbGFyYXRpb24gY2h1bmtzCiAqLwoKZnVuY3Rpb24KeAooCikKewp9CjsKCngoKTsKCmZ1bmN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9OwoKeSgpOwoKZnVuY3Rpb24KCnoKCigKCikKCnsKICAgIAp9Cgo7Cgp6KCk7CgpldmFsKCJmdW5jdGlvblx1MDAwOVx1MjAyOXcoXHUwMDBDKVx1MDBBMHtcdTAwMER9OyIpOwoKdygpOwoK","commentary":"Any separators are admitted between declaration chunks","description":"Inserting separators between declaration chunks","path":"TestCases/ch13/13.0/S13_A16.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBjYWxsIGNhbm5vdCBhcHBlYXIgaW4gdGhlIHByb2dyYW0gYmVmb3JlIHRoZSBGdW5jdGlvbkV4cHJlc3Npb24gYXBwZWFycwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExN19UMS5qcwogKiBAZGVzY3JpcHRpb24gVHJ5aW5nIHRvIGNhbGwgYSBmdW5jdGlvbiBiZWZvcmUgdGhlIEZ1bmN0aW9uRXhwcmVzc2lvbiBhcHBlYXJzCiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnl7CiAgICB2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKTsKCSRGQUlMKCIjMS4xOiB2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbiIpOwp9IGNhdGNoKGUpIHsKICBpZiAoKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpICE9PSB0cnVlKSB7CiAgICAkRVJST1IoJyMxLjI6IGZ1bmMgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yICBBY3R1YWw6ICcgKyAoZSkpOyAgCiAgfQp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fZnVuYyA9IGZ1bmN0aW9uICgpe3JldHVybiAiT05FIjt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgp2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKTsKaWYgKF9fcmVzdWx0ICE9PSAiT05FIikgewoJJEVSUk9SKCcjMjogX19yZXN1bHQgPT09ICJPTkUiLiBBY3R1YWw6IF9fcmVzdWx0ID09PScrX19yZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKX19mdW5jID0gZnVuY3Rpb24gKCl7cmV0dXJuICJUV08iO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCnZhciBfX3Jlc3VsdCA9IF9fZnVuYygpOwppZiAoX19yZXN1bHQgIT09ICJUV08iKSB7CgkkRVJST1IoJyMzOiBfX3Jlc3VsdCA9PT0gIlRXTyIuIEFjdHVhbDogX19yZXN1bHQgPT09JytfX3Jlc3VsdCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Function call cannot appear in the program before the FunctionExpression appears","description":"Trying to call a function before the FunctionExpression appears","path":"TestCases/ch13/13.0/S13_A17_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBjYWxsIGNhbm5vdCBhcHBlYXIgaW4gdGhlIHByb2dyYW0gYmVmb3JlIHRoZSBGdW5jdGlvbkV4cHJlc3Npb24gYXBwZWFycwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExN19UMi5qcwogKiBAZGVzY3JpcHRpb24gVHJ5aW5nIHRvIGNhbGwgYSBmdW5jdGlvbiBiZWZvcmUgdGhlIEZ1bmN0aW9uRXhwcmVzc2lvbiBhcHBlYXJzIGFuZCB0aGVuIHVzaW5nIHRoZSBGdW5jdGlvbkV4cHJlc3Npb24gb25lIG1vcmUgdGltZQogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5ewogICAgdmFyIF9fcmVzdWx0ID0gX19mdW5jKCk7CgkkRVJST1IoIiMxOiB2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbiIpOwp9IGNhdGNoKGUpIHsKICBpZiAoKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpICE9PSB0cnVlKSB7CiAgICAkRVJST1IoJyMxLjI6IGZ1bmMgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yICBBY3R1YWw6ICcgKyAoZSkpOyAgCiAgfQp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8gbm93IHdlIHJlYWNoIHRoZSBfX2Z1bmMgb3ZlcndyaXRpbmcgYnkgbmV3IGV4cHJlc3Npb24KdmFyIF9fZnVuYyA9IGZ1bmN0aW9uIF9fZnVuYygpe3JldHVybiAiT05FIjt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgp2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKTsKaWYgKF9fcmVzdWx0ICE9PSAiT05FIikgewoJJEVSUk9SKCcjMjogX19yZXN1bHQgPT09ICJPTkUiLiBBY3R1YWw6IF9fcmVzdWx0ID09PScrX19yZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKX19mdW5jID0gZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuICJUV08iO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCnZhciBfX3Jlc3VsdCA9IF9fZnVuYygpOwppZiAoX19yZXN1bHQgIT09ICJUV08iKSB7CgkkRVJST1IoJyMzOiBfX3Jlc3VsdCA9PT0gIlRXTyIuIEFjdHVhbDogX19yZXN1bHQgPT09JytfX3Jlc3VsdCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Function call cannot appear in the program before the FunctionExpression appears","description":"Trying to call a function before the FunctionExpression appears and then using the FunctionExpression one more time","path":"TestCases/ch13/13.0/S13_A17_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDbG9zdXJlcyBhcmUgYWRtaXR0ZWQKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTguanMKICogQGRlc2NyaXB0aW9uIFVzaW5nIGEgZnVuY3Rpb24gZGVjbGFyYXRpb24gYXMgYSBmdW5jdGlvbiBwYXJhbWV0ZXIKICovCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2Ygc2lueCAhPT0gJ3VuZGVmaW5lZCcpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBzaW54ID09PSBcJ3VuZGVmaW5lZFwnLiBBY3R1YWw6IHR5cGVvZiBzaW54ID09PScrdHlwZW9mIHNpbngpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fdmFsID0gZnVuY3Rpb24gZGVyaXZhdGl2ZShmLCBkeCkgewogICAgcmV0dXJuIGZ1bmN0aW9uKHgpIHsKICAgICAgcmV0dXJuIChmKHggKyBkeCkgLSBmKHgpKSAvIGR4OwogICAgfTsKfShmdW5jdGlvbiBzaW54KHgpe3JldHVybiBNYXRoLnNpbih4KTt9LC4wMDAxKSgwLjUpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAodHlwZW9mIHNpbnggIT09ICd1bmRlZmluZWQnKSB7CgkkRVJST1IoJyMyOiB0eXBlb2Ygc2lueCA9PT0gXCd1bmRlZmluZWRcJy4gQWN0dWFsOiB0eXBlb2Ygc2lueCA9PT0nK3R5cGVvZiBzaW54KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Closures are admitted","description":"Using a function declaration as a function parameter","path":"TestCases/ch13/13.0/S13_A18.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAidmFyIiBkb2VzIG5vdCBvdmVycmlkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbgogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExOV9UMS5qcwogKiBAZGVzY3JpcHRpb24gQ3JlYXRpbmcgYSBmdW5jdGlvbiBhbmQgYSB2YXJpYWJsZSB3aXRoIGlkZW50aWNhbCBJZGVudGlmaWVycyBpbiBnbG9iYWwgc2NvcGUKICovCgovLyBzaW5jZSAidmFyIiBkb2VzIG5vdCBvdmVycmlkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBfX2RlY2wgaXMgc2V0IHRvIGZ1bmN0aW9uCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2RlY2wgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2RlY2wgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZGVjbCA9PT0nK3R5cGVvZiBfX2RlY2wpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fZGVjbCA9IDE7CgovL3NpbmNlIHN0YXRlbWVudCB3YXMgZXZhbHV0ZWQgX19kZWNsIHR1cm5zIHRvIDEgZnJvbSBmdW5jdGlvbgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2RlY2wgIT09IDEpIHsKCSRFUlJPUignIzI6IF9fZGVjbCA9PT0gMS4gQWN0dWFsOiBfX2RlY2wgPT09JytfX2RlY2wpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19kZWNsKCl7cmV0dXJuIDE7fQoK","commentary":"\"var\" does not override function declaration","description":"Creating a function and a variable with identical Identifiers in global scope","path":"TestCases/ch13/13.0/S13_A19_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAidmFyIiBkb2VzIG5vdCBvdmVycmlkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbgogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExOV9UMi5qcwogKiBAZGVzY3JpcHRpb24gQ3JlYXRpbmcgYSBmdW5jdGlvbiBhbmQgYSB2YXJpYWJsZSB3aXRoIGlkZW50aWNhbCBJZGVudGlmaWVycyB3aXRoaW4gZnVuY3Rpb24gc2NvcGUKICovCgooZnVuY3Rpb24gKCl7CgogICAgLy8gc2luY2UgInZhciIgZG9lcyBub3Qgb3ZlcnJpZGUgZnVuY3Rpb24gZGVjbGFyYXRpb24gX19kZWNsIGlzIHNldCB0byBmdW5jdGlvbgogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAvL0NIRUNLIzEKICAgIGlmICh0eXBlb2YgX19kZWNsICE9PSAiZnVuY3Rpb24iKSB7CiAgICAJJEVSUk9SKCcjMTogdHlwZW9mIF9fZGVjbCA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19kZWNsID09PScrdHlwZW9mIF9fZGVjbCk7CiAgICB9CiAgICAvLwogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAKICAgIHZhciBfX2RlY2wgPSAxOwogICAgCiAgICAvL3NpbmNlIHN0YXRlbWVudCB3YXMgZXZhbHV0ZWQgX19kZWNsIHR1cm5zIHRvIDEgZnJvbSBmdW5jdGlvbgogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAvL0NIRUNLIzIKICAgIGlmIChfX2RlY2wgIT09IDEpIHsKICAgIAkkRVJST1IoJyMyOiBfX2RlY2wgPT09IDEuIEFjdHVhbDogX19kZWNsID09PScrX19kZWNsKTsKICAgIH0KICAgIC8vCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCiAgICBmdW5jdGlvbiBfX2RlY2woKXtyZXR1cm4gMTt9Cn0pKCk7ICAgIAoK","commentary":"\"var\" does not override function declaration","description":"Creating a function and a variable with identical Identifiers within function scope","path":"TestCases/ch13/13.0/S13_A19_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBmdW5jdGlvbiBtdXN0IGJlIGV2YWx1YXRlZCBpbnNpZGUgdGhlIGV4cHJlc3Npb24KICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMl9UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVmaW5pbmcgZnVuY3Rpb24gYm9keSB3aXRoICJyZXR1cm4gYXJnIgogKi8KCnZhciB4ID0gKGZ1bmN0aW9uIF9fZnVuYyhhcmcpe3JldHVybiBhcmd9KSgxKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHggIT09IDEpIHsKCSRFUlJPUignIzE6IHggPT09IDEuIEFjdHVhbDogeCA9PT0nK3gpOwp9CgovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICd1bmRlZmluZWQnKSB7CgkkRVJST1IoJyMyOiB0eXBlb2YgX19mdW5jID09PSBcJ3VuZGVmaW5lZFwnLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"function must be evaluated inside the expression","description":"Defining function body with \"return arg\"","path":"TestCases/ch13/13.0/S13_A2_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBmdW5jdGlvbiBtdXN0IGJlIGV2YWx1YXRlZCBpbnNpZGUgdGhlIGV4cHJlc3Npb24KICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMl9UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVmaW5pbmcgZnVuY3Rpb24gYm9keSB3aXRoICJyZXR1cm4gYXJnICsgYXJndW1lbnRzWzFdIgogKi8KCnZhciB4ID0gKGZ1bmN0aW9uIF9fZnVuYyhhcmcpe3JldHVybiBhcmcgKyBhcmd1bWVudHNbMV19KSgxLCIxIik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh4ICE9PSAiMTEiKSB7CgkkRVJST1IoJyMxOiB4ID09PSAiMTEiLiBBY3R1YWw6IHggPT09Jyt4KTsKfQoKLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICh0eXBlb2YgX19mdW5jICE9PSAndW5kZWZpbmVkJykgewoJJEVSUk9SKCcjMjogdHlwZW9mIF9fZnVuYyA9PT0gXCd1bmRlZmluZWRcJy4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"function must be evaluated inside the expression","description":"Defining function body with \"return arg + arguments[1]\"","path":"TestCases/ch13/13.0/S13_A2_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBmdW5jdGlvbiBtdXN0IGJlIGV2YWx1YXRlZCBpbnNpZGUgdGhlIGV4cHJlc3Npb24KICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMl9UMy5qcwogKiBAZGVzY3JpcHRpb24gRGVmaW5pbmcgZnVuY3Rpb24gYm9keSB3aXRoICJyZXR1cm4gYXJndW1lbnRzWzBdICsiLSIrIGFyZ3VtZW50c1sxXSIKICovCgp2YXIgeCA9IChmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gYXJndW1lbnRzWzBdICsiLSIrIGFyZ3VtZW50c1sxXX0pKCJPYmkiLCJXYW4iKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHggIT09ICJPYmktV2FuIikgewoJJEVSUk9SKCcjMTogeCA9PT0gIk9iaS1XYW4iLiBBY3R1YWw6IHggPT09Jyt4KTsKfQoKLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICh0eXBlb2YgX19mdW5jICE9PSAndW5kZWZpbmVkJykgewoJJEVSUk9SKCcjMjogdHlwZW9mIF9fZnVuYyA9PT0gXCd1bmRlZmluZWRcJy4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"function must be evaluated inside the expression","description":"Defining function body with \"return arguments[0] +\"-\"+ arguments[1]\"","path":"TestCases/ch13/13.0/S13_A2_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmllciBpbiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tIGluc2lkZSB0aGUgRnVuY3Rpb25FeHByZXNzaW9uJ3MgRnVuY3Rpb25Cb2R5IHRvIGFsbG93IHRoZSBmdW5jdGlvbiBjYWxsaW5nIGl0c2VsZiByZWN1cnNpdmVseQogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0EzX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBDcmVhdGluZyBhIHJlY3Vyc2l2ZSBmdW5jdGlvbiB0aGF0IGNhbGN1bGF0ZXMgZmFjdG9yaWFsLCBhcyBhIHZhcmlhYmxlLgogKiBGdW5jdGlvbiBjYWxsIGl0c2VsZiBieSBpdGBzIG5hbWUKICovCgp2YXIgX19mdW5jID0gZnVuY3Rpb24gX19leHBfX2Z1bmMoYXJnKXsKICAgIGlmIChhcmcgPT09IDEpIHsKICAgIAlyZXR1cm4gYXJnOwogICAgfSBlbHNlIHsKICAgIAlyZXR1cm4gX19leHBfX2Z1bmMoYXJnLTEpKmFyZzsKICAgIH0KfTsKCnZhciBmYWN0X29mXzMgPSAgX19mdW5jKDMpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoZmFjdF9vZl8zICE9PSA2KSB7CgkkRVJST1IoIiMxOiBmYWN0X29mXzMgPT09IDYuIEFjdHVhbDogZmFjdF9vZl8zID09PSIrZmFjdF9vZl8zKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"The Identifier in a FunctionExpression can be referenced from inside the FunctionExpression's FunctionBody to allow the function calling itself recursively","description":"Creating a recursive function that calculates factorial, as a variable.\nFunction call itself by it`s name","path":"TestCases/ch13/13.0/S13_A3_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmllciBpbiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tIGluc2lkZSB0aGUgRnVuY3Rpb25FeHByZXNzaW9uJ3MgRnVuY3Rpb25Cb2R5IHRvIGFsbG93IHRoZSBmdW5jdGlvbiBjYWxsaW5nIGl0c2VsZiByZWN1cnNpdmVseQogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0EzX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBDcmVhdGluZyBhIHJlY3Vyc2l2ZSBmdW5jdGlvbiB0aGF0IGNhbGN1bGF0ZXMgZmFjdG9yaWFsLCBhcyBhIHZhcmlhYmxlLgogKiBGdW5jdGlvbiBjYWxscyBpdHNlbGYgYnkgdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlCiAqLwoKdmFyIF9fZnVuYyA9IGZ1bmN0aW9uIChhcmcpewogICAgaWYgKGFyZyA9PT0gMSkgewogICAgCXJldHVybiBhcmc7CiAgICB9IGVsc2UgewogICAgCXJldHVybiBfX2Z1bmMoYXJnLTEpKmFyZzsKICAgIH0KfTsKCnZhciBmYWN0X29mXzMgPSAgX19mdW5jKDMpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoZmFjdF9vZl8zICE9PSA2KSB7CgkkRVJST1IoIiMxOiBmYWN0X29mXzMgPT09IDYuIEFjdHVhbDogZmFjdF9vZl8zID09PSIrZmFjdF9vZl8zKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"The Identifier in a FunctionExpression can be referenced from inside the FunctionExpression's FunctionBody to allow the function calling itself recursively","description":"Creating a recursive function that calculates factorial, as a variable.\nFunction calls itself by the name of the variable","path":"TestCases/ch13/13.0/S13_A3_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmllciBpbiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tIGluc2lkZSB0aGUgRnVuY3Rpb25FeHByZXNzaW9uJ3MgRnVuY3Rpb25Cb2R5IHRvIGFsbG93IHRoZSBmdW5jdGlvbiBjYWxsaW5nIGl0c2VsZiByZWN1cnNpdmVseQogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0EzX1QzLmpzCiAqIEBkZXNjcmlwdGlvbiBDcmVhdGluZyBzaW1wbGUgcmVjdXJzaXZlIGZ1bmN0aW9uIHRoYXQgY2FsY3VsYXRlcyBmYWN0b3JpYWwKICovCgpmdW5jdGlvbiBfX2Z1bmMoYXJnKXsKICAgIGlmIChhcmcgPT09IDEpIHsKICAgIAlyZXR1cm4gYXJnOwogICAgfSBlbHNlIHsKICAgIAlyZXR1cm4gX19mdW5jKGFyZy0xKSphcmc7CiAgICB9Cn07Cgp2YXIgZmFjdF9vZl8zID0gIF9fZnVuYygzKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKGZhY3Rfb2ZfMyAhPT0gNikgewoJJEVSUk9SKCIjMTogZmFjdF9vZl8zID09PSA2LiBBY3R1YWw6IGZhY3Rfb2ZfMyA9PT0iK2ZhY3Rfb2ZfMyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"The Identifier in a FunctionExpression can be referenced from inside the FunctionExpression's FunctionBody to allow the function calling itself recursively","description":"Creating simple recursive function that calculates factorial","path":"TestCases/ch13/13.0/S13_A3_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0E0X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgc3RyaW5nCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuICJ6aWctemlnLXNwdXRuaWsiO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxIAppZiAodHlwZW9mIF9fZnVuYyAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2Z1bmMoKSAhPT0gInppZy16aWctc3B1dG5payIpIHsKCSRFUlJPUignIzI6IF9fZnVuYygpID09PSAiemlnLXppZy1zcHV0bmlrIi4gQWN0dWFsOiBfX2Z1bmMoKSA9PT0nK19fZnVuYygpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"The production FunctionDeclaration: \"function Identifier ( FormalParameterList_opt ) { FunctionBody }\" is processed by function declarations","description":"Declaring a function that returns string","path":"TestCases/ch13/13.0/S13_A4_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0E0X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB0aGF0IHVzZXMgcHJlZml4IGluY3JlbWVudCBvcGVyYXRvciB3aXRoaW4gaXRzICJyZXR1cm4iIEV4cHJlc3Npb24KICovCgpmdW5jdGlvbiBfX2Z1bmMoYXJnKXtyZXR1cm4gKythcmc7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEgCmlmICh0eXBlb2YgX19mdW5jICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19mdW5jID09PSAiZnVuY3Rpb24iLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYygxKSAhPT0gMikgewoJJEVSUk9SKCcjMjogX19mdW5jKDEpID09PSAyLiBBY3R1YWw6IF9fZnVuYygxKSA9PT0nK19fZnVuYygxKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"The production FunctionDeclaration: \"function Identifier ( FormalParameterList_opt ) { FunctionBody }\" is processed by function declarations","description":"Declaring a function that uses prefix increment operator within its \"return\" Expression","path":"TestCases/ch13/13.0/S13_A4_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0E0X1QzLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB0aGF0IHVzZXMgYXJpdGhtZXRpY2FsIG9wZXJhdG9ycyB3aXRoaW4gaXRzICJyZXR1cm4iIEV4cHJlc3Npb24KICovCgpmdW5jdGlvbiBfX2Z1bmMoYXJnMSwgYXJnMiwgYXJnMyl7cmV0dXJuIGFyZzErPShhcmcyKz1hcmczKTt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMSAKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2Z1bmMgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKDEwLCAyMCwgMzApICE9PSA2MCkgewoJJEVSUk9SKCcjMjogX19mdW5jKDEwLCAyMCwgMzApID09PSA2MC4gQWN0dWFsOiBfX2Z1bmMoMTAsMjAsMzApID09PScrX19mdW5jKDEwLDIwLDMwKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"The production FunctionDeclaration: \"function Identifier ( FormalParameterList_opt ) { FunctionBody }\" is processed by function declarations","description":"Declaring a function that uses arithmetical operators within its \"return\" Expression","path":"TestCases/ch13/13.0/S13_A4_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0E0X1Q0LmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB0aGF0IHVzZXMgc3RyaW5ncyBjb25jYXRlbmFpb24gb3BlYXRvciB3aXRoaW4gaXRzICJyZXR1cm4iIEV4cHJlc3Npb24KICovCgpmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gYXJndW1lbnRzWzBdLm5hbWUgKyAiICIgKyBhcmd1bWVudHNbMF0uc3VybmFtZTt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMSAKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2Z1bmMgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKHtuYW1lOidmb3gnLCBzdXJuYW1lOidtYWxkZXInfSkgIT09ICJmb3ggbWFsZGVyIikgewoJJEVSUk9SKCcjMjogX19mdW5jKHtuYW1lOlwnZm94XCcsIHN1cm5hbWU6XCdtYWxkZXJcJ30pID09PSAiZm94IG1hbGRlciIuIEFjdHVhbDogX19mdW5jKHtuYW1lOlwnZm94XCcsIHN1cm5hbWU6XCdtYWxkZXJcJ30pID09PScrX19mdW5jKHtuYW1lOidmb3gnLCBzdXJuYW1lOidtYWxkZXInfSkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gZnVuY19fKGFyZyl7cmV0dXJuIGFyZy5uYW1lICsgIiAiICsgYXJnLnN1cm5hbWU7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMgCmlmICh0eXBlb2YgZnVuY19fICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyMzOiB0eXBlb2YgZnVuY19fID09PSAiZnVuY3Rpb24iLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzQKaWYgKGZ1bmNfXyh7bmFtZTonam9obicsIHN1cm5hbWU6J2xlbm5vbid9KSAhPT0gImpvaG4gbGVubm9uIikgewoJJEVSUk9SKCcjNDogZnVuY19fKHtuYW1lOlwnam9oblwnLCBzdXJuYW1lOlwnbGVubm9uXCd9KSA9PT0gImpvaG4gbGVubm9uIi4gQWN0dWFsOiBfX2Z1bmMoe25hbWU6XCdqb2huXCcsIHN1cm5hbWU6XCdsZW5ub25cJ30pID09PScrX19mdW5jKHtuYW1lOidqb2huJywgc3VybmFtZTonbGVubm9uJ30pKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"The production FunctionDeclaration: \"function Identifier ( FormalParameterList_opt ) { FunctionBody }\" is processed by function declarations","description":"Declaring a function that uses strings concatenaion opeator within its \"return\" Expression","path":"TestCases/ch13/13.0/S13_A4_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIGNhbiBiZSBvdmVycmlkZWQgYnkgb3RoZXIgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aXRoIHRoZSBzYW1lIElkZW50aWZpZXIKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BNl9UMS5qcwogKiBAZGVzY3JpcHRpb24gRHVwbGljYXRpbmcgZnVuY3Rpb24gZGVjbGFyYXRpb24KICovCgpmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gMX07CiAKdmFyIF9fc3RvcmVfX2Z1bmMgPSBfX2Z1bmM7CiAKdmFyIF9fMSA9IF9fZnVuYygpOwogCiBmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gJ0EnfTsKIAp2YXIgX19BID0gX19mdW5jKCk7CiAKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19zdG9yZV9fZnVuYyAhPT0gX19mdW5jKSB7CgkkRVJST1IoJyMxOiBfX3N0b3JlX19mdW5jID09PSBfX2Z1bmMuIEFjdHVhbDogX19zdG9yZV9fZnVuYyA9PT0nK19fc3RvcmVfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAKIAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfXzEgIT09IF9fQSkgewoJJEVSUk9SKCcjMjogX18xID09PSBfX0EuIEFjdHVhbDogX18xID09PScrX18xKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"FunctionDeclaration can be overrided by other FunctionDeclaration with the same Identifier","description":"Duplicating function declaration","path":"TestCases/ch13/13.0/S13_A6_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIGNhbiBiZSBvdmVycmlkZWQgYnkgb3RoZXIgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aXRoIHRoZSBzYW1lIElkZW50aWZpZXIKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BNl9UMi5qcwogKiBAZGVzY3JpcHRpb24gQ2FsbGluZyBhIGZ1bmN0aW9uIGJlZm9yZSBpdCBpcyBkZWNsYXJlZCBvbmUgbW9yZSB0aW1lCiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnl7CiAgICB2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKTsKfSBjYXRjaChlKSB7CiAgICAkRkFJTCgiIzE6IEZ1bmN0aW9uIGNhbGwgY2FuIGFwcGVhcnMgaW4gdGhlIHByb2dyYW0gYmVmb3JlIHRoZSBGdW5jdGlvbkRlY2xhcmF0aW9uIGFwcGVhcnMiKTsKfQppZiAoX19yZXN1bHQgIT09ICJTRUNPTkQiKSB7CgkkRVJST1IoJyMxLjE6IF9fcmVzdWx0ID09PSAiU0VDT05EIi4gQWN0dWFsOiBfX3Jlc3VsdCA9PT0nK19fcmVzdWx0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIF9fZnVuYygpe3JldHVybiAiRklSU1QiO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCl9fcmVzdWx0ID0gX19mdW5jKCk7CmlmIChfX3Jlc3VsdCAhPT0gIlNFQ09ORCIpIHsKCSRFUlJPUignIzI6IF9fcmVzdWx0ID09PSAiU0VDT05EIi4gQWN0dWFsOiBfX3Jlc3VsdCA9PT0nK19fcmVzdWx0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIF9fZnVuYygpe3JldHVybiAiU0VDT05EIjt9OwoK","commentary":"FunctionDeclaration can be overrided by other FunctionDeclaration with the same Identifier","description":"Calling a function before it is declared one more time","path":"TestCases/ch13/13.0/S13_A6_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgRnVuY3Rpb25Cb2R5IG11c3QgYmUgU291cmNlRWxlbWVudHMKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BN19UMS5qcwogKiBAZGVzY3JpcHRpb24gVXNpbmcgb25seSBTb3VyY2VFbGVtZW50cyB3aXRoaW4gdGhlIEZ1bmN0aW9uQm9keQogKi8KCmZ1bmN0aW9uIF9fZnVuYygpeydncm91bmQgY29udHJvbCB0byBtYWpvciB0b20nfTsKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZnVuYyAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2Z1bmNfXzIoKXtifTsKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAodHlwZW9mIF9fZnVuY19fMiAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMjogdHlwZW9mIF9fZnVuY19fMiA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jX18yID09PScrdHlwZW9mIF9fZnVuY19fMik7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2Z1bmNfXzMoKXsxfTsKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAodHlwZW9mIF9fZnVuY19fMyAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMzogdHlwZW9mIF9fZnVuY19fMyA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jX18zID09PScrdHlwZW9mIF9fZnVuY19fMyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2Z1bmNfXzQoKXsxK2N9OwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM0CmlmICh0eXBlb2YgX19mdW5jX180ICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyM0OiB0eXBlb2YgX19mdW5jX180ID09PSAiZnVuY3Rpb24iLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmNfXzQgPT09Jyt0eXBlb2YgX19mdW5jX180KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIF9fZnVuY19fNSgpe2luYyhkKX07Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzUKaWYgKHR5cGVvZiBfX2Z1bmNfXzUgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzU6IHR5cGVvZiBfX2Z1bmNfXzUgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuY19fNSA9PT0nK3R5cGVvZiBfX2Z1bmNfXzUpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19mdW5jX182KCl7dmFyIFx1MDA0MiA9IDE7fTsKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNgppZiAodHlwZW9mIF9fZnVuY19fNiAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjNjogdHlwZW9mIF9fZnVuY19fNiA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jX182ID09PScrdHlwZW9mIF9fZnVuY19fNik7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovL2Z1bmN0aW9uIF9fZnVuY19fNygpe3ZhciBcdTAwM2QgPSAxO307Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vLy9DSEVDSyM3Ci8vaWYgKHR5cGVvZiBfX2Z1bmNfXzcgIT09ICJmdW5jdGlvbiIpIHsKLy8JJEVSUk9SKCcjNzogVGhlIEZ1bmN0aW9uQm9keSBtdXN0IGJlIFNvdXJjZUVsZW1lbnRzJyk7Ci8vfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"The FunctionBody must be SourceElements","description":"Using only SourceElements within the FunctionBody","path":"TestCases/ch13/13.0/S13_A7_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgRnVuY3Rpb25Cb2R5IG11c3QgYmUgU291cmNlRWxlbWVudHMKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BN19UMi5qcwogKiBAZGVzY3JpcHRpb24gSW5zZXJ0aW5nIGVsZW1lbnRzIHRoYXQgaXMgZGlmZmVyZW50IGZyb20gU291cmNlRWxlbWVudHMgaW50byB0aGUgRnVuY3Rpb25Cb2R5CiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnl7CglldmFsKCJmdW5jdGlvbiBfX2Z1bmMoKXsvIEFCQ30iKTsKCSRFUlJPUignIzE6IGV2YWwoImZ1bmN0aW9uIF9fZnVuYygpey8gQUJDfSIpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0gY2F0Y2goZSl7CglpZighKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpewoJCSRFUlJPUignIzEuMTogZXZhbCgiZnVuY3Rpb24gX19mdW5jKCl7LyBBQkN9IikgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24gb2YgU3ludGF4RXJyb3IuIEFjdHVhbDogZXhjZXB0aW9uIGlzICcrZSk7Cgl9Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCnRyeXsKCWV2YWwoImZ1bmN0aW9uIF9fZnVuYygpeyYxfSIpOwoJJEVSUk9SKCcjMzogZXZhbCgiZnVuY3Rpb24gX19mdW5jKCl7JjF9IikgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKTsKfSBjYXRjaChlKXsKCWlmKCEoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSl7CgkJJEVSUk9SKCcjMy4xOiBldmFsKCJmdW5jdGlvbiBfX2Z1bmMoKXsmMX0iKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbiBvZiBTeW50YXhFcnJvci4gQWN0dWFsOiBleGNlcHRpb24gaXMgJytlKTsKCX0KfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzQKdHJ5ewoJZXZhbCgiZnVuY3Rpb24gX19mdW5jKCl7IyBBQkN9Iik7CgkkRVJST1IoJyM0OiBldmFsKCJmdW5jdGlvbiBfX2Z1bmMoKXsjIEFCQ30iKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoKGUpewoJaWYoIShlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKXsKCQkkRVJST1IoJyM0LjE6IGV2YWwoImZ1bmN0aW9uIF9fZnVuYygpeyMgQUJDfSIpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uIG9mIFN5bnRheEVycm9yLiBBY3R1YWw6IGV4Y2VwdGlvbiBpcyAnK2UpOwoJfQp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"The FunctionBody must be SourceElements","description":"Inserting elements that is different from SourceElements into the FunctionBody","path":"TestCases/ch13/13.0/S13_A7_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgRnVuY3Rpb25Cb2R5IG11c3QgYmUgU291cmNlRWxlbWVudHMKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BN19UMy5qcwogKiBAZGVzY3JpcHRpb24gQ2hlY2tpbmcgaWYgZXhlY3V0aW9uIG9mICJmdW5jdGlvbiBfX2Z1bmMoKXtcQVxCXEN9IiBmYWlscwogKiBAbmVnYXRpdmUKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXtcQVxCXEN9OwoK","commentary":"The FunctionBody must be SourceElements","description":"Checking if execution of \"function __func(){\\A\\B\\C}\" fails","negative":"","path":"TestCases/ch13/13.0/S13_A7_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBBcmd1bWVudHMgcHJvcGVydHkgb2YgYWN0aXZhdGlvbiBvYmplY3QgY29udGFpbnMgcmVhbCBwYXJhbXMgdG8gYmUgcGFzc2VkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMC9TMTNfQThfVDEuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gZGVjbGFyZWQgd2l0aCAiZnVuY3Rpb24gX19mdW5jKHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMpIiBhbmQgdXNpbmcgYXJndW1lbnRzLmxlbmd0aCBwcm9wZXJ0eSBpbiBvcmRlciB0byBwZXJmb3JtIHRoZSB0ZXN0CiAqLwoKIGZ1bmN0aW9uIF9fZnVuYyhwYXJhbTEsIHBhcmFtMiwgcGFyYW0zKSB7CiAJcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg7CiB9CiAKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKCdBJykgIT09IDEpIHsKIAkkRVJST1IoJyMxOiBfX2Z1bmMoXCdBXCcpID09PSAxLiBBY3R1YWw6IF9fZnVuYyhcJ0FcJykgPT09JytfX2Z1bmMoJ0EnKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2Z1bmMoJ0EnLCAnQicsIDEsIDIsX19mdW5jKSAhPT0gNSkgewoJJEVSUk9SKCcjMjogX19mdW5jKFwnQVwnLCBcJ0JcJywgMSwgMixfX2Z1bmMpID09PSA1LiBBY3R1YWw6IF9fZnVuYyhcJ0FcJywgXCdCXCcsIDEsIDIsX19mdW5jKSA9PT0nK19fZnVuYygnQScsICdCJywgMSwgMixfX2Z1bmMpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAogCiAKCg==","commentary":"Arguments property of activation object contains real params to be passed","description":"Creating a function declared with \"function __func(param1, param2, param3)\" and using arguments.length property in order to perform the test","path":"TestCases/ch13/13.0/S13_A8_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBBcmd1bWVudHMgcHJvcGVydHkgb2YgYWN0aXZhdGlvbiBvYmplY3QgY29udGFpbnMgcmVhbCBwYXJhbXMgdG8gYmUgcGFzc2VkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMC9TMTNfQThfVDIuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gd2l0aCBubyBwYXJhbWV0ZXJzIGFuZCB1c2luZyBhcmd1bWVudHMubGVuZ3RoIHByb3BlcnR5IGluIG9yZGVyIHRvIHBlcmZvcm0gdGhlIHRlc3QKICovCgogZnVuY3Rpb24gX19mdW5jKCkgewogCXJldHVybiBhcmd1bWVudHMubGVuZ3RoOwogfQogCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygnQScpICE9PSAxKSB7CiAJJEVSUk9SKCcjMTogX19mdW5jKFwnQVwnKSA9PT0gMS4gQWN0dWFsOiBfX2Z1bmMoXCdBXCcpID09PScrX19mdW5jKCdBJykpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCdBJywgJ0InLCAxLCAyLF9fZnVuYykgIT09IDUpIHsKCSRFUlJPUignIzI6IF9fZnVuYyhcJ0FcJywgXCdCXCcsIDEsIDIsX19mdW5jKSA9PT0gNS4gQWN0dWFsOiBfX2Z1bmMoXCdBXCcsIFwnQlwnLCAxLCAyLF9fZnVuYykgPT09JytfX2Z1bmMoJ0EnLCAnQicsIDEsIDIsX19mdW5jKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmIChfX2Z1bmMoKSAhPT0gMCkgewoJJEVSUk9SKCcjMzogX19mdW5jKCkgPT09IDAuIEFjdHVhbDogX19mdW5jKCkgPT09JytfX2Z1bmMoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Arguments property of activation object contains real params to be passed","description":"Creating a function with no parameters and using arguments.length property in order to perform the test","path":"TestCases/ch13/13.0/S13_A8_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBjYW4gYmUgcGFzc2VkIGFzIGFyZ3VtZW50CiAqCiAqIEBwYXRoIGNoMTMvMTMuMC9TMTNfQTkuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nIGZ1bmN0aW9uIGFzIGFyZ3VtZW50IG9mIGFub3RoZXIgZnVuY3Rpb24KICovCgpmdW5jdGlvbiBfX2Z1bmNfX0lOQyhhcmcpe3JldHVybiBhcmcgKyAxO307CmZ1bmN0aW9uIF9fZnVuY19fTVVMVChpbmNyZW1lbnRhdG9yLCBhcmcsIG11bHQpeyByZXR1cm4gaW5jcmVtZW50YXRvcihhcmcpKm11bHQ7IH07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmNfX01VTFQoX19mdW5jX19JTkMsIDIsIDIpICE9PSA2KSB7CgkkRVJST1IoJyMxOiBmdW5jdGlvbiAgY2FuIGJlIHBhc3NlZCBhcyBhcmd1bWVudCcpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCg==","commentary":"Function can be passed as argument","description":"Using function as argument of another function","path":"TestCases/ch13/13.0/S13_A9.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTEtMS5qcw0KICogQGRlc2NyaXB0aW9uIER1cGxpY2F0ZSBpZGVudGlmaWVyIGFsbG93ZWQgaW4gbm9uLXN0cmljdCBmdW5jdGlvbiBkZWNsYXJhdGlvbiBwYXJhbWV0ZXIgbGlzdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKQ0Kew0KICB0cnkgDQogIHsNCiAgICBldmFsKCdmdW5jdGlvbiBmb28oYSxhKXt9Jyk7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiAgY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlIH0NCiAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"Duplicate identifier allowed in non-strict function declaration parameter list","path":"TestCases/ch13/13.1/13.1-1-1.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTEtMi5qcw0KICogQGRlc2NyaXB0aW9uIER1cGxpY2F0ZSBpZGVudGlmaWVyIGFsbG93ZWQgaW4gbm9uLXN0cmljdCBmdW5jdGlvbiBleHByZXNzaW9uIHBhcmFtZXRlciBsaXN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpDQp7DQogIHRyeSANCiAgew0KICAgIGV2YWwoJyhmdW5jdGlvbiBmb28oYSxhKXt9KScpOw0KICAgIHJldHVybiB0cnVlOw0KICB9DQogIGNhdGNoIChlKSB7IHJldHVybiBmYWxzZSB9DQogIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"Duplicate identifier allowed in non-strict function expression parameter list","path":"TestCases/ch13/13.1/13.1-1-2.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMS1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2V2YWwnIGFwcGVhcnMgd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlIEZ1bmN0aW9uRGVjbGFyYXRpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBfMTNfMV8xX2Z1bihldmFsKSB7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionDeclaration","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-1-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0xMC1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIGluICdzdHJpY3QgbW9kZScgdXNpbmcgYSBGdW5jdGlvbkV4cHJlc3Npb24gYW5kIHRoZSBmdW5jdGlvbiBoYXMgdGhyZWUgaWRlbnRpY2FsIHBhcmFtZXRlcnMNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJ2YXIgXzEzXzFfMTBfZnVuID0gZnVuY3Rpb24gKHBhcmFtLCBwYXJhbSwgcGFyYW0pIHsgfTsiKQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionExpression and the function has three identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-10-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTExLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdldmFsJyBvY2N1cnMgYXMgdGhlIGZ1bmN0aW9uIG5hbWUgb2YgYSBGdW5jdGlvbkRlY2xhcmF0aW9uIGluIHN0cmljdCBtb2RlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICJ1c2Ugc3RyaWN0IjsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoImZ1bmN0aW9uIGV2YWwoKSB7IH07IikNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"StrictMode - SyntaxError is thrown if 'eval' occurs as the function name of a FunctionDeclaration in strict mode","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-11-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTEyLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdldmFsJyBvY2N1cnMgYXMgdGhlIElkZW50aWZpZXIgb2YgYSBGdW5jdGlvbkV4cHJlc3Npb24gaW4gc3RyaWN0IG1vZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KICAgICAgICB2YXIgXzEzXzFfMTJfcyA9IHt9Ow0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJfMTNfMV8xMl9zLnggPSBmdW5jdGlvbiBldmFsKCkge307Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"StrictMode - SyntaxError is thrown if 'eval' occurs as the Identifier of a FunctionExpression in strict mode","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-12-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTEzLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdhcmd1bWVudHMnIG9jY3VycyBhcyB0aGUgZnVuY3Rpb24gbmFtZSBvZiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gaW4gc3RyaWN0IG1vZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBhcmd1bWVudHMoKSB7IH07IikNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"StrictMode - SyntaxError is thrown if 'arguments' occurs as the function name of a FunctionDeclaration in strict mode","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-13-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gCi8qKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMTNncy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgJ2FyZ3VtZW50cycgb2NjdXJzIGFzIHRoZSBJZGVudGlmaWVyIG9mIGEgRnVuY3Rpb25EZWNsYXJhdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBeKCg/IU5vdEVhcmx5RXJyb3IpLikqJA0KICovDQrvu78idXNlIHN0cmljdCI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KZnVuY3Rpb24gYXJndW1lbnRzKCkgeyB9Ow==","commentary":"","description":"StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionDeclaration","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-13gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTE0LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdhcmd1bWVudHMnIG9jY3VycyBhcyB0aGUgSWRlbnRpZmllciBvZiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBpbiBzdHJpY3QgbW9kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIHZhciBfMTNfMV8xNF9zID0ge307DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoIl8xM18xXzE0X3MueCA9IGZ1bmN0aW9uIGFyZ3VtZW50cygpIHt9OyIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionExpression in strict mode","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-14-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMTUtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdCBNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmIHRoZSBpZGVudGlmaWVyICdldmFsJyBhcHBlYXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3Qgb2YgYSBzdHJpY3QgbW9kZSBGdW5jdGlvbkRlY2xhcmF0aW9uIGluIHN0cmljdCBldmFsIGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiJ3VzZSBzdHJpY3QnO2Z1bmN0aW9uIF8xM18xXzE1X2Z1bihldmFsKSB7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionDeclaration in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-15-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMTYtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2V2YWwnIGFwcGVhcnMgd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlIEZ1bmN0aW9uRGVjbGFyYXRpb24gd2hlbiBGdWN0aW9uQm9keSBpcyBzdHJpY3QgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBfMTNfMV8xNl9mdW4oZXZhbCkgeyAndXNlIHN0cmljdCc7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"StrictMode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionDeclaration when FuctionBody is strict code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-16-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMTctcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2V2YWwnIGFwcGVhcnMgd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlIEZ1bmN0aW9uRXhwcmVzc2lvbiBpbiBzdHJpY3QgZXZhbCBjb2RlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoIid1c2Ugc3RyaWN0JzsgdmFyIF8xM18xXzE3X2Z1biA9IGZ1bmN0aW9uIChldmFsKSB7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"StrictMode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionExpression in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-17-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMTgtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2V2YWwnIGFwcGVhcnMgd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlIEZ1bmN0aW9uRXhwcmVzc2lvbiB3aGVuIEZ1Y3Rpb25Cb2R5IGlzIHN0cmljdCBjb2RlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoInZhciBfMTNfMV8xOF9mdW4gPSBmdW5jdGlvbiAoZXZhbCkgeyAndXNlIHN0cmljdCc7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"StrictMode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionExpression when FuctionBody is strict code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-18-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMTktcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdCBNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmIHRoZSBpZGVudGlmaWVyICdhcmd1bWVudHMnIGFwcGVhcnMgd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlIEZ1bmN0aW9uRGVjbGFyYXRpb24gaW4gc3RyaWN0IGV2YWwgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCIndXNlIHN0cmljdCc7ZnVuY3Rpb24gXzEzXzFfMTlfZnVuKGFyZ3VtZW50cykgeyB9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionDeclaration in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-19-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gCi8qKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMWdzLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2V2YWwnIGFwcGVhcnMgd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlIEZ1bmN0aW9uRGVjbGFyYXRpb24NCiAqIEBvbmx5U3RyaWN0DQogKiBAbmVnYXRpdmUgXigoPyFOb3RFYXJseUVycm9yKS4pKiQNCiAqLw0KInVzZSBzdHJpY3QiOw0KdGhyb3cgTm90RWFybHlFcnJvcjsNCmZ1bmN0aW9uIF8xM18xXzFfZnVuKGV2YWwpIHsgfQ==","commentary":"","description":"Strict Mode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionDeclaration","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-1gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTItMS5qcw0KICogQGRlc2NyaXB0aW9uIGV2YWwgYWxsb3dlZCBhcyBmb3JtYWwgcGFyYW1ldGVyIG5hbWUgb2YgYSBub24tc3RyaWN0IGZ1bmN0aW9uIGRlY2xhcmF0aW9uDQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpDQp7DQogIHRyeSANCiAgew0KICAgIGV2YWwoImZ1bmN0aW9uIGZvbyhldmFsKXt9OyIpOw0KICAgIHJldHVybiB0cnVlOw0KICB9DQogIGNhdGNoIChlKSB7ICB9DQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"eval allowed as formal parameter name of a non-strict function declaration","path":"TestCases/ch13/13.1/13.1-2-1.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTItMi5qcw0KICogQGRlc2NyaXB0aW9uIGV2YWwgYWxsb3dlZCBhcyBmb3JtYWwgcGFyYW1ldGVyIG5hbWUgb2YgYSBub24tc3RyaWN0IGZ1bmN0aW9uIGV4cHJlc3Npb24NCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkNCnsNCiAgICBldmFsKCIoZnVuY3Rpb24gZm9vKGV2YWwpe30pOyIpOw0KICAgIHJldHVybiB0cnVlOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"eval allowed as formal parameter name of a non-strict function expression","path":"TestCases/ch13/13.1/13.1-2-2.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTItNS5qcw0KICogQGRlc2NyaXB0aW9uIGFyZ3VtZW50cyBhbGxvd2VkIGFzIGZvcm1hbCBwYXJhbWV0ZXIgbmFtZSBvZiBhIG5vbi1zdHJpY3QgZnVuY3Rpb24gZGVjbGFyYXRpb24NCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkNCnsNCiAgdHJ5IA0KICB7DQogICAgZXZhbCgiZnVuY3Rpb24gZm9vKGFyZ3VtZW50cyl7fTsiKTsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICBjYXRjaCAoZSkgeyAgfQ0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"arguments allowed as formal parameter name of a non-strict function declaration","path":"TestCases/ch13/13.1/13.1-2-5.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTItNi5qcw0KICogQGRlc2NyaXB0aW9uIGFyZ3VtZW50cyBhbGxvd2VkIGFzIGZvcm1hbCBwYXJhbWV0ZXIgbmFtZSBvZiBhIG5vbi1zdHJpY3QgZnVuY3Rpb24gZXhwcmVzc2lvbg0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKQ0Kew0KICAgIGV2YWwoIihmdW5jdGlvbiBmb28oYXJndW1lbnRzKXt9KTsiKTsNCiAgICByZXR1cm4gdHJ1ZTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"arguments allowed as formal parameter name of a non-strict function expression","path":"TestCases/ch13/13.1/13.1-2-6.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMi1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2V2YWwnIGFwcGVhcnMgd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlIEZ1bmN0aW9uRXhwcmVzc2lvbg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoInZhciBfMTNfMV8yX2Z1biA9IGZ1bmN0aW9uIChldmFsKSB7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionExpression","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-2-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMjAtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2FyZ3VtZW50cycgYXBwZWFycyB3aXRoaW4gYSBGb3JtYWxQYXJhbWV0ZXJMaXN0IG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aGVuIEZ1Y3Rpb25Cb2R5IGlzIHN0cmljdCBjb2RlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoImZ1bmN0aW9uIF8xM18xXzIwX2Z1bihhcmd1bWVudHMpIHsgJ3VzZSBzdHJpY3QnOyB9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"StrictMode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionDeclaration when FuctionBody is strict code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-20-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMjEtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2FyZ3VtZW50cycgYXBwZWFycyB3aXRoaW4gYSBGb3JtYWxQYXJhbWV0ZXJMaXN0IG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25FeHByZXNzaW9uIGluIHN0cmljdCBldmFsIGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiJ3VzZSBzdHJpY3QnOyB2YXIgXzEzXzFfMjFfZnVuID0gZnVuY3Rpb24gKGFyZ3VtZW50cykgeyB9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"StrictMode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionExpression in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-21-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMjItcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2FyZ3VtZW50cycgYXBwZWFycyB3aXRoaW4gYSBGb3JtYWxQYXJhbWV0ZXJMaXN0IG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25FeHByZXNzaW9uIHdoZW4gRnVjdGlvbkJvZHkgaXMgc3RyaWN0IGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgidmFyIF8xM18xXzIyX2Z1biA9IGZ1bmN0aW9uIChhcmd1bWVudHMpIHsgJ3VzZSBzdHJpY3QnOyB9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"StrictMode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionExpression when FuctionBody is strict code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-22-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0yMy1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25EZWNsYXJhdGlvbiB0aGF0IGlzIGNvbnRhaW5lZCBpbiBldmFsIHN0cmljdCBjb2RlIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHR3byBpZGVudGljYWwgcGFyYW1ldGVycw0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCIndXNlIHN0cmljdCc7IGZ1bmN0aW9uIF8xM18xXzIzX2Z1bihwYXJhbSwgcGFyYW0pIHsgfSIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration that is contained in eval strict code and the function has two identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-23-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0yNC1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aG9zZSBGdW5jdGlvbkJvZHkgaXMgY29udGFpbmVkIGluIHN0cmljdCBjb2RlIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHR3byBpZGVudGljYWwgcGFyYW1ldGVycw0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBfMTNfMV8yNF9mdW4ocGFyYW0sIHBhcmFtKSB7ICd1c2Ugc3RyaWN0JzsgfSIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration whose FunctionBody is contained in strict code and the function has two identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-24-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0yNS1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25EZWNsYXJhdGlvbiB0aGF0IGlzIGNvbnRhaW5lZCBpbiBldmFsIHN0cmljdCBjb2RlIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHR3byBpZGVudGljYWwgcGFyYW1ldGVycyB3aGljaCBhcmUgc2VwYXJhdGVkIGJ5IGEgdW5pcXVlIHBhcmFtZXRlciBuYW1lDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoIid1c2Ugc3RyaWN0JzsgZnVuY3Rpb24gXzEzXzFfMjVfZnVuKHBhcmFtMSwgcGFyYW0yLCBwYXJhbTEpIHsgfSIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration that is contained in eval strict code and the function has two identical parameters which are separated by a unique parameter name","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-25-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0yNi1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aG9zZSBGdW5jdGlvbkJvZHkgaXMgY29udGFpbmVkIGluIHN0cmljdCBjb2RlIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHR3byBpZGVudGljYWwgcGFyYW1ldGVycyB3aGljaCBhcmUgc2VwYXJhdGVkIGJ5IGEgdW5pcXVlIHBhcmFtZXRlciBuYW1lDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoImZ1bmN0aW9uIF8xM18xXzI2X2Z1bihwYXJhbTEsIHBhcmFtMiwgcGFyYW0xKSB7ICd1c2Ugc3RyaWN0JzsgfSIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration whose FunctionBody is contained in strict code and the function has two identical parameters which are separated by a unique parameter name","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-26-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0yNy1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25EZWNsYXJhdGlvbiB0aGF0IGlzIGNvbnRhaW5lZCBpbiBldmFsIHN0cmljdCBjb2RlIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHRocmVlIGlkZW50aWNhbCBwYXJhbWV0ZXJzDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoIid1c2Ugc3RyaWN0JzsgZnVuY3Rpb24gXzEzXzFfMjdfZnVuKHBhcmFtLCBwYXJhbSwgcGFyYW0pIHsgfSIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration that is contained in eval strict code and the function has three identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-27-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0yOC1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aG9zZSBGdW5jdGlvbkJvZHkgaXMgY29udGFpbmVkIGluIHN0cmljdCBjb2RlIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHRocmVlIGlkZW50aWNhbCBwYXJhbWV0ZXJzDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIA0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBfMTNfMV8yOF9mdW4ocGFyYW0sIHBhcmFtLCBwYXJhbSkgeyAndXNlIHN0cmljdCc7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration whose FunctionBody is contained in strict code and the function has three identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-28-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0yOS1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25FeHByZXNzaW9uIHRoYXQgaXMgY29udGFpbmVkIGluIGV2YWwgc3RyaWN0IGNvZGUgYW5kIHRoZSBmdW5jdGlvbiBoYXMgdHdvIGlkZW50aWNhbCBwYXJhbWV0ZXJzDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoIid1c2Ugc3RyaWN0JzsgdmFyIF8xM18xXzI5X2Z1biA9IGZ1bmN0aW9uIChwYXJhbSwgcGFyYW0pIHsgfTsiKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionExpression that is contained in eval strict code and the function has two identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-29-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTMtMS5qcw0KICogQGRlc2NyaXB0aW9uIGV2YWwgYWxsb3dlZCBhcyBmdW5jdGlvbiBpZGVudGlmaWVyIGluIG5vbi1zdHJpY3QgZnVuY3Rpb24gZGVjbGFyYXRpb24NCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkNCnsNCiAgdHJ5IA0KICB7DQogICAgZXZhbCgiZnVuY3Rpb24gZXZhbCgpe307Iik7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiAgY2F0Y2ggKGUpIHsgIH0gIA0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"eval allowed as function identifier in non-strict function declaration","path":"TestCases/ch13/13.1/13.1-3-1.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTMtMi5qcw0KICogQGRlc2NyaXB0aW9uIGV2YWwgYWxsb3dlZCBhcyBmdW5jdGlvbiBpZGVudGlmaWVyIGluIG5vbi1zdHJpY3QgZnVuY3Rpb24gZXhwcmVzc2lvbg0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKQ0Kew0KICB0cnkgDQogIHsNCiAgICBldmFsKCIoZnVuY3Rpb24gZXZhbCgpe30pOyIpOw0KICAgIHJldHVybiB0cnVlOw0KICB9DQogIGNhdGNoIChlKSB7ICB9ICANCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"eval allowed as function identifier in non-strict function expression","path":"TestCases/ch13/13.1/13.1-3-2.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTMtNy5qcw0KICogQGRlc2NyaXB0aW9uIGFyZ3VtZW50cyBhbGxvd2VkIGFzIGZ1bmN0aW9uIGlkZW50aWZpZXIgaW4gbm9uLXN0cmljdCBmdW5jdGlvbiBkZWNsYXJhdGlvbg0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKQ0Kew0KICB0cnkgDQogIHsNCiAgICBldmFsKCJmdW5jdGlvbiBhcmd1bWVudHMgKCl7fTsiKTsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICBjYXRjaCAoZSkgeyAgfSAgDQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"arguments allowed as function identifier in non-strict function declaration","path":"TestCases/ch13/13.1/13.1-3-7.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTMtOC5qcw0KICogQGRlc2NyaXB0aW9uIGFyZ3VtZW50cyBhbGxvd2VkIGFzIGZ1bmN0aW9uIGlkZW50aWZpZXIgaW4gbm9uLXN0cmljdCBmdW5jdGlvbiBleHByZXNzaW9uDQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpDQp7DQogIHRyeSANCiAgew0KICAgIGV2YWwoIihmdW5jdGlvbiBhcmd1bWVudHMgKCl7fSk7Iik7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiAgY2F0Y2ggKGUpIHsgIH0gIA0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"arguments allowed as function identifier in non-strict function expression","path":"TestCases/ch13/13.1/13.1-3-8.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMy1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2FyZ3VtZW50cycgYXBwZWFycyB3aXRoaW4gYSBGb3JtYWxQYXJhbWV0ZXJMaXN0IG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoImZ1bmN0aW9uIF8xM18xXzNfZnVuKGFyZ3VtZW50cykgeyB9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionDeclaration","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-3-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0zMC1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25FeHByZXNzaW9uIHdob3NlIEZ1bmN0aW9uQm9keSBpcyBjb250YWluZWQgaW4gc3RyaWN0IGNvZGUgYW5kIHRoZSBmdW5jdGlvbiBoYXMgdHdvIGlkZW50aWNhbCBwYXJhbWV0ZXJzDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoInZhciBfMTNfMV8zMF9mdW4gPSBmdW5jdGlvbiAocGFyYW0sIHBhcmFtKSB7ICd1c2Ugc3RyaWN0JzsgfTsiKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionExpression whose FunctionBody is contained in strict code and the function has two identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-30-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0zMS1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25FeHByZXNzaW9uIHRoYXQgaXMgY29udGFpbmVkIGluIGV2YWwgc3RyaWN0IGNvZGUgYW5kIHRoZSBmdW5jdGlvbiBoYXMgdHdvIGlkZW50aWNhbCBwYXJhbWV0ZXJzLCB3aGljaCBhcmUgc2VwYXJhdGVkIGJ5IGEgdW5pcXVlIHBhcmFtZXRlciBuYW1lDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoIid1c2Ugc3RyaWN0JzsgdmFyIF8xM18xXzMxX2Z1biA9IGZ1bmN0aW9uIChwYXJhbTEsIHBhcmFtMiwgcGFyYW0xKSB7IH07Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionExpression that is contained in eval strict code and the function has two identical parameters, which are separated by a unique parameter name","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-31-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0zMi1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25FeHByZXNzaW9uIHdob3NlIEZ1bmN0aW9uQm9keSBpcyBzdHJpY3QgYW5kIHRoZSBmdW5jdGlvbiBoYXMgdHdvIGlkZW50aWNhbCBwYXJhbWV0ZXJzLCB3aGljaCBhcmUgc2VwYXJhdGVkIGJ5IGEgdW5pcXVlIHBhcmFtZXRlciBuYW1lDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoInZhciBfMTNfMV8zMl9mdW4gPSBmdW5jdGlvbiAocGFyYW0xLCBwYXJhbTIsIHBhcmFtMSkgeyAndXNlIHN0cmljdCc7IH07Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionExpression whose FunctionBody is strict and the function has two identical parameters, which are separated by a unique parameter name","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-32-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0zMy1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgZnVuY3Rpb24gaXMgY3JlYXRlZCB1c2luZyBhIEZ1bmN0aW9uRXhwcmVzc2lvbiB0aGF0IGlzIGNvbnRhaW5lZCBpbiBldmFsIHN0cmljdCBjb2RlIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHRocmVlIGlkZW50aWNhbCBwYXJhbWV0ZXJzDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoIid1c2Ugc3RyaWN0JzsgdmFyIF8xM18xXzMzX2Z1biA9IGZ1bmN0aW9uIChwYXJhbSwgcGFyYW0sIHBhcmFtKSB7IH07IikNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if function is created using a FunctionExpression that is contained in eval strict code and the function has three identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-33-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0zNC1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBoYXMgdGhyZWUgaWRlbnRpY2FsIHBhcmFtZXRlcnMgd2l0aCBhIHN0cmljdCBtb2RlIGJvZHkNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgidmFyIF8xM18xXzM0X2Z1biA9IGZ1bmN0aW9uIChwYXJhbSwgcGFyYW0sIHBhcmFtKSB7ICd1c2Ugc3RyaWN0JzsgfTsiKQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function declaration has three identical parameters with a strict mode body","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-34-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTM1LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdldmFsJyBvY2N1cnMgYXMgdGhlIGZ1bmN0aW9uIG5hbWUgb2YgYSBGdW5jdGlvbkRlY2xhcmF0aW9uIGluIHN0cmljdCBldmFsIGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiJ3VzZSBzdHJpY3QnOyBmdW5jdGlvbiBldmFsKCkgeyB9OyIpDQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"StrictMode - SyntaxError is thrown if 'eval' occurs as the function name of a FunctionDeclaration in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-35-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTM2LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdldmFsJyBvY2N1cnMgYXMgdGhlIGZ1bmN0aW9uIG5hbWUgb2YgYSBGdW5jdGlvbkRlY2xhcmF0aW9uIHdob3NlIEZ1bmN0aW9uQm9keSBpcyBpbiBzdHJpY3QgbW9kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBldmFsKCkgeyAndXNlIHN0cmljdCc7IH07IikNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"StrictMode - SyntaxError is thrown if 'eval' occurs as the function name of a FunctionDeclaration whose FunctionBody is in strict mode","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-36-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTM3LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdldmFsJyBvY2N1cnMgYXMgdGhlIElkZW50aWZpZXIgb2YgYSBGdW5jdGlvbkV4cHJlc3Npb24gaW4gc3RyaWN0IGV2YWwgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgXzEzXzFfMzdfcyA9IHt9Ow0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiJ3VzZSBzdHJpY3QnOyBfMTNfMV8zN19zLnggPSBmdW5jdGlvbiBldmFsKCkge307Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"StrictMode - SyntaxError is thrown if 'eval' occurs as the Identifier of a FunctionExpression in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-37-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTM4LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdldmFsJyBvY2N1cnMgYXMgdGhlIElkZW50aWZpZXIgb2YgYSBGdW5jdGlvbkV4cHJlc3Npb24gd2hvc2UgRnVuY3Rpb25Cb2R5IGlzIGNvbnRhaW5lZCBpbiBzdHJpY3QgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgXzEzXzFfMzhfcyA9IHt9Ow0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiXzEzXzFfMzhfcy54ID0gZnVuY3Rpb24gZXZhbCgpIHsndXNlIHN0cmljdCc7IH07Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"StrictMode - SyntaxError is thrown if 'eval' occurs as the Identifier of a FunctionExpression whose FunctionBody is contained in strict code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-38-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTM5LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdhcmd1bWVudHMnIG9jY3VycyBhcyB0aGUgZnVuY3Rpb24gbmFtZSBvZiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gaW4gc3RyaWN0IGV2YWwgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCIndXNlIHN0cmljdCc7IGZ1bmN0aW9uIGFyZ3VtZW50cygpIHsgfTsiKQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - SyntaxError is thrown if 'arguments' occurs as the function name of a FunctionDeclaration in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-39-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtNC1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2FyZ3VtZW50cycgYXBwZWFycyB3aXRoaW4gYSBGb3JtYWxQYXJhbWV0ZXJMaXN0IG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25FeHByZXNzaW9uDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICJ1c2Ugc3RyaWN0IjsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgidmFyIF8xM18xXzRfZnVuID0gZnVuY3Rpb24gKGFyZ3VtZW50cykgeyB9OyIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionExpression","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-4-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTQwLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdhcmd1bWVudHMnIG9jY3VycyBhcyB0aGUgSWRlbnRpZmllciBvZiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gd2hvc2UgRnVuY3Rpb25Cb2R5IGlzIGNvbnRhaW5lZCBpbiBzdHJpY3QgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBhcmd1bWVudHMoKSB7ICd1c2Ugc3RyaWN0JzsgfTsiKQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionDeclaration whose FunctionBody is contained in strict code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-40-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTQxLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdhcmd1bWVudHMnIG9jY3VycyBhcyB0aGUgSWRlbnRpZmllciBvZiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBpbiBzdHJpY3QgZXZhbCBjb2RlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBfMTNfMV80MV9zID0ge307DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCIndXNlIHN0cmljdCc7IF8xM18xXzQxX3MueCA9IGZ1bmN0aW9uIGFyZ3VtZW50cygpIHt9OyIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionExpression in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-41-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTQyLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdhcmd1bWVudHMnIG9jY3VycyBhcyB0aGUgSWRlbnRpZmllciBvZiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiB3aG9zZSBGdW5jdGlvbkJvZHkgaXMgY29udGFpbmVkIGluIHN0cmljdCBjb2RlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBfMTNfMV80Ml9zID0ge307DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJfMTNfMV80Ml9zLnggPSBmdW5jdGlvbiBhcmd1bWVudHMoKSB7J3VzZSBzdHJpY3QnO307Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionExpression whose FunctionBody is contained in strict code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-42-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gCi8qKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtNGdzLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2FyZ3VtZW50cycgYXBwZWFycyB3aXRoaW4gYSBGb3JtYWxQYXJhbWV0ZXJMaXN0IG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25FeHByZXNzaW9uDQogKiBAb25seVN0cmljdA0KICogQG5lZ2F0aXZlIF4oKD8hTm90RWFybHlFcnJvcikuKSokDQogKi8NCiJ1c2Ugc3RyaWN0IjsNCnRocm93IE5vdEVhcmx5RXJyb3I7DQp2YXIgXzEzXzFfNF9mdW4gPSBmdW5jdGlvbiAoYXJndW1lbnRzKSB7IH07","commentary":"","description":"Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionExpression","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-4gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS01LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiBhIGZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluICdzdHJpY3QgbW9kZScgdXNpbmcgYSBGdW5jdGlvbkRlY2xhcmF0aW9uIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHR3byBpZGVudGljYWwgcGFyYW1ldGVycw0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoImZ1bmN0aW9uIF8xM18xXzVfZnVuKHBhcmFtLCBwYXJhbSkgeyB9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is declared in 'strict mode' using a FunctionDeclaration and the function has two identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-5-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gCi8qKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtNWdzLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBGdW5jdGlvbkRlY2xhcmF0aW9uIGhhcyB0d28gaWRlbnRpY2FsIHBhcmFtZXRlcnMNCiAqIEBvbmx5U3RyaWN0DQogKiBAbmVnYXRpdmUgXigoPyFOb3RFYXJseUVycm9yKS4pKiQNCiAqLw0KInVzZSBzdHJpY3QiOw0KdGhyb3cgTm90RWFybHlFcnJvcjsNCmZ1bmN0aW9uIF8xM18xXzVfZnVuKHBhcmFtLCBwYXJhbSkgeyB9","commentary":"","description":"Strict Mode - SyntaxError is thrown if a FunctionDeclaration has two identical parameters","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-5gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS02LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiBhIGZ1bmN0aW9uIGlzIGNyZWF0ZWQgaW4gJ3N0cmljdCBtb2RlJyB1c2luZyBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gYW5kIHRoZSBmdW5jdGlvbiBoYXMgdHdvIGlkZW50aWNhbCBwYXJhbWV0ZXJzLCB3aGljaCBhcmUgc2VwYXJhdGVkIGJ5IGEgdW5pcXVlIHBhcmFtZXRlciBuYW1lDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICJ1c2Ugc3RyaWN0IjsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiZnVuY3Rpb24gXzEzXzFfNl9mdW4ocGFyYW0xLCBwYXJhbTIsIHBhcmFtMSkgeyB9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionDeclaration and the function has two identical parameters, which are separated by a unique parameter name","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-6-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS03LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiBhIGZ1bmN0aW9uIGlzIGNyZWF0ZWQgaW4gJ3N0cmljdCBtb2RlJyB1c2luZyBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gYW5kIHRoZSBmdW5jdGlvbiBoYXMgdGhyZWUgaWRlbnRpY2FsIHBhcmFtZXRlcnMNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBfMTNfMV83X2Z1bihwYXJhbSwgcGFyYW0sIHBhcmFtKSB7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionDeclaration and the function has three identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-7-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS04LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiBhIGZ1bmN0aW9uIGlzIGNyZWF0ZWQgaW4gJ3N0cmljdCBtb2RlJyB1c2luZyBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBhbmQgdGhlIGZ1bmN0aW9uIGhhcyB0d28gaWRlbnRpY2FsIHBhcmFtZXRlcnMNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJ2YXIgXzEzXzFfOF9mdW4gPSBmdW5jdGlvbiAocGFyYW0sIHBhcmFtKSB7IH07Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionExpression and the function has two identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-8-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gCi8qKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtOGdzLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBGdW5jdGlvbkV4cHJlc3Npb24gaGFzIHR3byBpZGVudGljYWwgcGFyYW1ldGVycw0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBeKCg/IU5vdEVhcmx5RXJyb3IpLikqJA0KICovDQoidXNlIHN0cmljdCI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KdmFyIF8xM18xXzhfZnVuID0gZnVuY3Rpb24gKHBhcmFtLCBwYXJhbSkgeyB9Ow==","commentary":"","description":"Strict Mode - SyntaxError is thrown if a FunctionExpression has two identical parameters","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-8gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS05LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiBhIGZ1bmN0aW9uIGlzIGNyZWF0ZWQgaW4gJ3N0cmljdCBtb2RlJyB1c2luZyBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBhbmQgdGhlIGZ1bmN0aW9uIGhhcyB0d28gaWRlbnRpY2FsIHBhcmFtZXRlcnMsIHdoaWNoIGFyZSBzZXBhcmF0ZWQgYnkgYSB1bmlxdWUgcGFyYW1ldGVyIG5hbWUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJ2YXIgXzEzXzFfOV9mdW4gPSBmdW5jdGlvbiAocGFyYW0xLCBwYXJhbTIsIHBhcmFtMSkgeyB9OyIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionExpression and the function has two identical parameters, which are separated by a unique parameter name","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-9-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTEtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSAgV3JpdGluZyBvciByZWFkaW5nIGZyb20gYSBwcm9wZXJ0eSBuYW1lZCAnY2FsbGVyJyBvZiBmdW5jdGlvbiBvYmplY3RzIGlzIGFsbG93ZWQgdW5kZXIgYm90aCBzdHJpY3QgYW5kIG5vcm1hbCBtb2Rlcy4NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHZhciBmb28gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICB0aGlzLmNhbGxlciA9IDEyOw0KICAgICAgICB9DQogICAgICAgIHZhciBvYmogPSBuZXcgZm9vKCk7DQogICAgICAgIHJldHVybiBvYmouY2FsbGVyID09PSAxMjsNCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"StrictMode - Writing or reading from a property named 'caller' of function objects is allowed under both strict and normal modes.","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-1-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTE1LTEuanMNCiAqIEBkZXNjcmlwdGlvbiBGdW5jdGlvbiBPYmplY3QgaGFzIGxlbmd0aCBhcyBpdHMgb3duIHByb3BlcnR5IGFuZCBkb2VzIG5vdCBpbnZva2UgdGhlIHNldHRlciBkZWZpbmVkIG9uIEZ1bmN0aW9uLnByb3RvdHlwZS5sZW5ndGggKFN0ZXAgMTUpDQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHZhciBmdW4gPSBmdW5jdGlvbiAoeCwgeSkgeyB9Ow0KDQogICAgICAgICAgICB2YXIgdmVyaWZ5VmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgIHZlcmlmeVZhbHVlID0gKGZ1bi5oYXNPd25Qcm9wZXJ0eSgibGVuZ3RoIikgJiYgZnVuLmxlbmd0aCA9PT0gMik7DQoNCiAgICAgICAgICAgIHZhciB2ZXJpZnlXcml0YWJsZSA9IGZhbHNlOw0KICAgICAgICAgICAgZnVuLmxlbmd0aCA9IDEwMDE7DQogICAgICAgICAgICB2ZXJpZnlXcml0YWJsZSA9IChmdW4ubGVuZ3RoID09PSAxMDAxKTsNCg0KICAgICAgICAgICAgdmFyIHZlcmlmeUVudW1lcmFibGUgPSBmYWxzZTsNCiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gZnVuKSB7DQogICAgICAgICAgICAgICAgaWYgKHAgPT09ICJsZW5ndGgiKSB7DQogICAgICAgICAgICAgICAgICAgIHZlcmlmeUVudW1lcmFibGUgPSB0cnVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgdmFyIHZlcmlmeUNvbmZpZ3VyYWJsZSA9IGZhbHNlOw0KICAgICAgICAgICAgZGVsZXRlIGZ1bi5sZW5ndGg7DQogICAgICAgICAgICB2ZXJpZnlDb25maWd1cmFibGUgPSBmdW4uaGFzT3duUHJvcGVydHkoImxlbmd0aCIpOw0KDQogICAgICAgICAgICByZXR1cm4gdmVyaWZ5VmFsdWUgJiYgIXZlcmlmeVdyaXRhYmxlICYmICF2ZXJpZnlFbnVtZXJhYmxlICYmIHZlcmlmeUNvbmZpZ3VyYWJsZTsNCiAgICAgICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"Function Object has length as its own property and does not invoke the setter defined on Function.prototype.length (Step 15)","path":"TestCases/ch13/13.2/13.2-15-1.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTE3LTEuanMNCiAqIEBkZXNjcmlwdGlvbiBGdW5jdGlvbiBPYmplY3QgaGFzICdjb25zdHJ1Y3RvcicgYXMgaXRzIG93biBwcm9wZXJ0eSwgaXQgaXMgbm90IGVudW1lcmFibGUgYW5kIGRvZXMgbm90IGludm9rZSB0aGUgc2V0dGVyIGRlZmluZWQgb24gRnVuY3Rpb24ucHJvdG90eXBlLmNvbnN0cnVjdG9yIChTdGVwIDE3KQ0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCAiY29uc3RydWN0b3IiKTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciBnZXRGdW5jID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxMDA7DQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICB2YXIgZGF0YSA9ICJkYXRhIjsNCiAgICAgICAgICAgIHZhciBzZXRGdW5jID0gZnVuY3Rpb24gKHZhbHVlKSB7DQogICAgICAgICAgICAgICAgZGF0YSA9IHZhbHVlOw0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICJjb25zdHJ1Y3RvciIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGdldEZ1bmMsDQogICAgICAgICAgICAgICAgc2V0OiBzZXRGdW5jLA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciBmdW4gPSBmdW5jdGlvbiAoKSB7fTsNCg0KICAgICAgICAgICAgdmFyIHZlcmlmeVZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICB2ZXJpZnlWYWx1ZSA9IHR5cGVvZiBmdW4ucHJvdG90eXBlLmNvbnN0cnVjdG9yID09PSAiZnVuY3Rpb24iOw0KDQogICAgICAgICAgICB2YXIgdmVyaWZ5RW51bWVyYWJsZSA9IGZhbHNlOw0KICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBmdW4ucHJvdG90eXBlKSB7DQogICAgICAgICAgICAgICAgaWYgKHAgPT09ICJjb25zdHJ1Y3RvciIgJiYgZnVuLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgiY29uc3RydWN0b3IiKSkgew0KICAgICAgICAgICAgICAgICAgICB2ZXJpZnlFbnVtZXJhYmxlID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHZhciB2ZXJpZnlXcml0YWJsZSA9IGZhbHNlOw0KICAgICAgICAgICAgZnVuLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IDEyOw0KICAgICAgICAgICAgdmVyaWZ5V3JpdGFibGUgPSAoZnVuLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9PT0gMTIpOw0KDQogICAgICAgICAgICB2YXIgdmVyaWZ5Q29uZmlndXJhYmxlID0gZmFsc2U7DQogICAgICAgICAgICBkZWxldGUgZnVuLnByb3RvdHlwZS5jb25zdHJ1Y3RvcjsNCiAgICAgICAgICAgIHZlcmlmeUNvbmZpZ3VyYWJsZSA9IGZ1bi5oYXNPd25Qcm9wZXJ0eSgiY29uc3RydWN0b3IiKTsNCg0KICAgICAgICAgICAgcmV0dXJuIHZlcmlmeVZhbHVlICYmIHZlcmlmeVdyaXRhYmxlICYmICF2ZXJpZnlFbnVtZXJhYmxlICYmICF2ZXJpZnlDb25maWd1cmFibGUgJiYgZGF0YSA9PT0gImRhdGEiOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICJjb25zdHJ1Y3RvciIsIGRlc2MpOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"Function Object has 'constructor' as its own property, it is not enumerable and does not invoke the setter defined on Function.prototype.constructor (Step 17)","path":"TestCases/ch13/13.2/13.2-17-1.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTE4LTEuanMNCiAqIEBkZXNjcmlwdGlvbiBGdW5jdGlvbiBPYmplY3QgaGFzICdwcm90b3R5cGUnIGFzIGl0cyBvd24gcHJvcGVydHksIGl0IGlzIG5vdCBlbnVtZXJhYmxlIGFuZCBkb2VzIG5vdCBpbnZva2UgdGhlIHNldHRlciBkZWZpbmVkIG9uIEZ1bmN0aW9uLnByb3RvdHlwZSAoU3RlcCAxOCkNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgdmFyIGdldEZ1bmMgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwMDsNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIHZhciBkYXRhID0gImRhdGEiOw0KICAgICAgICAgICAgdmFyIHNldEZ1bmMgPSBmdW5jdGlvbiAodmFsdWUpIHsNCiAgICAgICAgICAgICAgICBkYXRhID0gdmFsdWU7DQogICAgICAgICAgICB9Ow0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZ1bmN0aW9uLnByb3RvdHlwZSwgInByb3RvdHlwZSIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGdldEZ1bmMsDQogICAgICAgICAgICAgICAgc2V0OiBzZXRGdW5jLA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciBmdW4gPSBmdW5jdGlvbiAoKSB7IH07DQoNCiAgICAgICAgICAgIHZhciB2ZXJpZnlWYWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgdmVyaWZ5VmFsdWUgPSAoZnVuLnByb3RvdHlwZSAhPT0gMTAwICYmIGZ1bi5wcm90b3R5cGUudG9TdHJpbmcoKSA9PT0gIltvYmplY3QgT2JqZWN0XSIpOw0KDQogICAgICAgICAgICB2YXIgdmVyaWZ5RW51bWVyYWJsZSA9IGZhbHNlOw0KICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBmdW4pIHsNCiAgICAgICAgICAgICAgICBpZiAocCA9PT0gInByb3RvdHlwZSIgJiYgZnVuLmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKSkgew0KICAgICAgICAgICAgICAgICAgICB2ZXJpZnlFbnVtZXJhYmxlID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHZhciB2ZXJpZnlDb25maWd1cmFibGUgPSBmYWxzZTsNCiAgICAgICAgICAgIGRlbGV0ZSBmdW4ucHJvdG90eXBlOw0KICAgICAgICAgICAgdmVyaWZ5Q29uZmlndXJhYmxlID0gZnVuLmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKTsNCg0KICAgICAgICAgICAgdmFyIHZlcmlmeVdyaXRhYmxlID0gZmFsc2U7DQogICAgICAgICAgICBmdW4ucHJvdG90eXBlID0gMTINCiAgICAgICAgICAgIHZlcmlmeVdyaXRhYmxlID0gKGZ1bi5wcm90b3R5cGUgPT09IDEyKTsNCg0KICAgICAgICAgICAgcmV0dXJuIHZlcmlmeVZhbHVlICYmIHZlcmlmeVdyaXRhYmxlICYmICF2ZXJpZnlFbnVtZXJhYmxlICYmIHZlcmlmeUNvbmZpZ3VyYWJsZSAmJiBkYXRhID09PSAiZGF0YSI7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgRnVuY3Rpb24ucHJvdG90eXBlLnByb3RvdHlwZTsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"Function Object has 'prototype' as its own property, it is not enumerable and does not invoke the setter defined on Function.prototype (Step 18)","path":"TestCases/ch13/13.2/13.2-18-1.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTItcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBBIFR5cGVFcnJvciBpcyB0aHJvd24gd2hlbiBhIHN0cmljdCBtb2RlIGNvZGUgd3JpdGVzIHRvIHByb3BlcnRpZXMgbmFtZWQgJ2NhbGxlcicgb2YgZnVuY3Rpb24gaW5zdGFuY2VzLg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgZm9vID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZm9vLmNhbGxlciA9IDIwOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIGV4IGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - A TypeError is thrown when a strict mode code writes to properties named 'caller' of function instances.","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-2-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTMtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBXcml0aW5nIG9yIHJlYWRpbmcgZnJvbSBhIHByb3BlcnR5IG5hbWVkICdhcmd1bWVudHMnIG9mIGZ1bmN0aW9uIG9iamVjdHMgaXMgYWxsb3dlZCB1bmRlciBib3RoIHN0cmljdCBhbmQgbm9ybWFsIG1vZGVzLg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQoNCiAgICAgICAgdmFyIGZvbyA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHRoaXMuYXJndW1lbnRzID0gMTI7DQogICAgICAgIH0gDQogICAgICAgIHZhciBvYmogPSBuZXcgZm9vKCk7DQogICAgICAgIHJldHVybiBvYmouYXJndW1lbnRzID09PSAxMjsNCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"StrictMode - Writing or reading from a property named 'arguments' of function objects is allowed under both strict and normal modes.","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-3-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTQtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBBIFR5cGVFcnJvciBpcyB0aHJvd24gd2hlbiBhIGNvZGUgaW4gc3RyaWN0IG1vZGUgdHJpZXMgdG8gd3JpdGUgdG8gJ2FyZ3VtZW50cycgb2YgZnVuY3Rpb24gaW5zdGFuY2VzLg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgZm9vID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZm9vLmFyZ3VtZW50cyA9IDIwOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIGV4IGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - A TypeError is thrown when a code in strict mode tries to write to 'arguments' of function instances.","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-4-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTUtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSByZWFkaW5nIGEgcHJvcGVydHkgbmFtZWQgJ2NhbGxlcicgb2YgZnVuY3Rpb24gb2JqZWN0cyBpcyBub3QgYWxsb3dlZCBvdXRzaWRlIHRoZSBmdW5jdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgZm9vID0gbmV3IEZ1bmN0aW9uKCIndXNlIHN0cmljdCc7Iik7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgdGVtcCA9IGZvby5jYWxsZXI7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - reading a property named 'caller' of function objects is not allowed outside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-5-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTctcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBlbnVtZXJhdGluZyBvdmVyIGEgZnVuY3Rpb24gb2JqZWN0IGxvb2tpbmcgZm9yICdjYWxsZXInIGZhaWxzIG91dHNpZGUgb2YgdGhlIGZ1bmN0aW9uDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBmb28gPSBuZXcgRnVuY3Rpb24oIid1c2Ugc3RyaWN0JzsiKTsNCiAgICAgICAgDQogICAgICAgIGZvciAodmFyIHRlbXBJbmRleCBpbiBmb28pIHsNCiAgICAgICAgICAgIGlmICh0ZW1wSW5kZXggPT09ICJjYWxsZXIiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"StrictMode - enumerating over a function object looking for 'caller' fails outside of the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-7-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTgtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBlbnVtZXJhdGluZyBvdmVyIGEgZnVuY3Rpb24gb2JqZWN0IGxvb2tpbmcgZm9yICdjYWxsZXInIGZhaWxzIGluc2lkZSB0aGUgZnVuY3Rpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHZhciBmb28gPSBuZXcgRnVuY3Rpb24oIid1c2Ugc3RyaWN0JzsgZm9yICh2YXIgdGVtcEluZGV4IGluIHRoaXMpIHtpZiAodGVtcEluZGV4PT09XCJjYWxsZXJcIikge3JldHVybiBmYWxzZTt9fTsgcmV0dXJuIHRydWU7Iik7DQogICAgICAgICAgICByZXR1cm4gZm9vKCk7DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - enumerating over a function object looking for 'caller' fails inside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-8-s.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgZGVwdGggb2YgbmVzdGVkIGZ1bmN0aW9uIGNhbGxzIHJlYWNoZXMgMzIKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjFfQTFfVDEuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGZ1bmN0aW9uIGNhbGxzIDMyIGVsZW1lbnRzIGRlcHRoCiAqLwoKKGZ1bmN0aW9uKCl7CiAgICAoZnVuY3Rpb24oKXsKICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXt9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgIH0pKCkKICAgICAgICB9KSgpCiAgICB9KSgpCn0pKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgo=","commentary":"The depth of nested function calls reaches 32","description":"Creating function calls 32 elements depth","path":"TestCases/ch13/13.2/S13.2.1_A1_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBPYmplY3RzIGFzIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ5IHJlZmVyZW5jZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNF9UMS5qcwogKiBAZGVzY3JpcHRpb24gQWRkaW5nIG5ldyBudW1iZXIgcHJvcGVydHkgdG8gYSBmdW5jdGlvbiBhcmd1bWVudCB3aXRoaW4gdGhlIGZ1bmN0aW9uIGJvZHksCiAqIHdoZXJlIGV4cGxpY2l0IGFyZ3VtZW50IGlzIGFuIG9iamVjdCBkZWZpbmVkIHdpdGggInZhciBfX29iaj17fSIKICovCgpmdW5jdGlvbiBfX2Z1bmMoX19hcmcpewogICAgX19hcmcuZm9vPTc7Cn0KCnZhciBfX29iaj17fTsKCl9fZnVuYyhfX29iaik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX29iai5mb28gIT09IDcpIHsKCSRFUlJPUignIzE6IF9fb2JqLmZvbyA9PT0gNy4gQWN0dWFsOiBfX29iai5mb28gPT09JytfX29iai5mb28pOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Objects as arguments are passed by reference","description":"Adding new number property to a function argument within the function body,\nwhere explicit argument is an object defined with \"var __obj={}\"","path":"TestCases/ch13/13.2/S13.2.1_A4_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBPYmplY3RzIGFzIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ5IHJlZmVyZW5jZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNF9UMi5qcwogKiBAZGVzY3JpcHRpb24gQWRkaW5nIG5ldyBzdHJpbmcgcHJvcGVydHkgdG8gYSBmdW5jdGlvbiBhcmd1bWVudCB3aXRoaW4gdGhlIGZ1bmN0aW9uIGJvZHksCiAqIHdoZXJlIGV4cGxpY2l0IGFyZ3VtZW50IGlzIGFuIG9iamVjdCBkZWZpbmVkIHdpdGggIl9fb2JqPXt9IgogKi8KCmZ1bmN0aW9uIF9fZnVuYyhfX2FyZyl7CiAgICBfX2FyZy5mb289IndoaXNrZXkgZ29nbyI7Cn0KCnZhciBfX29iaj17fTsKCiBfX2Z1bmMoX19vYmopOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19vYmouZm9vICE9PSAid2hpc2tleSBnb2dvIikgewoJJEVSUk9SKCcjMTogX19vYmouZm9vID09PSAid2hpc2tleSBnb2dvIi4gQWN0dWFsOiBfX29iai5mb28gPT09JytfX29iai5mb28pOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Objects as arguments are passed by reference","description":"Adding new string property to a function argument within the function body,\nwhere explicit argument is an object defined with \"__obj={}\"","path":"TestCases/ch13/13.2/S13.2.1_A4_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBPYmplY3RzIGFzIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ5IHJlZmVyZW5jZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNF9UMy5qcwogKiBAZGVzY3JpcHRpb24gQWRkaW5nIG5ldyBudW1iZXIgcHJvcGVydHkgdG8gYSBmdW5jdGlvbiBhcmd1bWVudCB3aXRoaW4gdGhlIGZ1bmN0aW9uIGJvZHksCiAqIHdoZXJlIGFycmF5IGVsZW1lbnQgImFyZ3VtZW50c1swXSIgaXMgYW4gb2JqZWN0IGRlZmluZWQgd2l0aCAiX19vYmo9e30iCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICBhcmd1bWVudHNbMF1bIlBJIl09My4xNDsKfQoKdmFyIF9fb2JqPXt9OwoKX19mdW5jKF9fb2JqKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fb2JqLlBJICE9PSAzLjE0KSB7CgkkRVJST1IoJyMxOiBfX29iai5QSSA9PT0gMy4xNC4gQWN0dWFsOiBfX29iai5QSSA9PT0nK19fb2JqLlBJKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Objects as arguments are passed by reference","description":"Adding new number property to a function argument within the function body,\nwhere array element \"arguments[0]\" is an object defined with \"__obj={}\"","path":"TestCases/ch13/13.2/S13.2.1_A4_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBPYmplY3RzIGFzIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ5IHJlZmVyZW5jZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNF9UNC5qcwogKiBAZGVzY3JpcHRpb24gQWRkaW5nIG5ldyBudW1iZXIgcHJvcGVydHkgdG8gYSBmdW5jdGlvbiBhcmd1bWVudCB3aXRoaW4gdGhlIGZ1bmN0aW9uIGJvZHksCiAqIHdoZXJlIGFycmF5IGVsZW1lbnQgImFyZ3VtZW50c1swXSIgaXMgYW4gb2JqZWN0IGRlZmluZWQgd2l0aCAidmFyIF9fb2JqPXt9IgogKi8KCmZ1bmN0aW9uIF9fZnVuYygpewogICAgYXJndW1lbnRzWzBdWyJFIl09Mi43NDsKfQoKdmFyIF9fb2JqPXt9OwoKX19mdW5jKF9fb2JqKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fb2JqLkUgIT09IDIuNzQpIHsKCSRFUlJPUignIzE6IF9fb2JqLkUgPT09IDIuNzQuIEFjdHVhbDogX19vYmouRSA9PT0nK19fb2JqLkUpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Objects as arguments are passed by reference","description":"Adding new number property to a function argument within the function body,\nwhere array element \"arguments[0]\" is an object defined with \"var __obj={}\"","path":"TestCases/ch13/13.2/S13.2.1_A4_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDbG9zdXJlcyBhcmUgYWRtaXR0ZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjFfQTVfVDEuanMKICogQGRlc2NyaXB0aW9uIFNvcnRpbmcgd2l0aCBjbG9zdXJlCiAqLwoKdmFyIF9fYXJyID0gWzQsMywyLDEsNCwzLDIsMSw0LDMsMiwxXTsKLy9Tb3J0IHVzZXMgY2xvc3VyZQovLwpfX2Fyci5zb3J0KAoJZnVuY3Rpb24oeCx5KSB7IAoJCWlmICh4Pnkpe3JldHVybiAtMTt9IAoJCWlmICh4PHkpe3JldHVybiAxO30gCgkJaWYgKHg9PXkpe3JldHVybiAwO30gCgl9Cik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Fyci50b1N0cmluZygpICE9PSBbNCw0LDQsMywzLDMsMiwyLDIsMSwxLDFdLnRvU3RyaW5nKCkpIHsKCSRFUlJPUignIzE6IF9fYXJyLnRvU3RyaW5nKCkgPT09IFs0LDQsNCwzLDMsMywyLDIsMiwxLDEsMV0udG9TdHJpbmcoKS4gQWN0dWFsOiBfX2Fyci50b1N0cmluZygpID09PScrX19hcnIudG9TdHJpbmcoKSk7Cn0KCi8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgCgo=","commentary":"Closures are admitted","description":"Sorting with closure","path":"TestCases/ch13/13.2/S13.2.1_A5_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDbG9zdXJlcyBhcmUgYWRtaXR0ZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjFfQTVfVDIuanMKICogQGRlc2NyaXB0aW9uIFJldHVybmluZyBhIGZ1bmN0aW9uIHRoYXQgYXBwcm94aW1hdGVzIHRoZSBkZXJpdmF0aXZlIG9mIGYKICogdXNpbmcgYW4gaW50ZXJ2YWwgb2YgZHgsIHdoaWNoIHNob3VsZCBiZSBhcHByb3ByaWF0ZWx5IHNtYWxsCiAqLwoKLy8gUmV0dXJuIGEgZnVuY3Rpb24gdGhhdCBhcHByb3hpbWF0ZXMgdGhlIGRlcml2YXRpdmUgb2YgZgovLyB1c2luZyBhbiBpbnRlcnZhbCBvZiBkeCwgd2hpY2ggc2hvdWxkIGJlIGFwcHJvcHJpYXRlbHkgc21hbGwuCmZ1bmN0aW9uIGRlcml2YXRpdmUoZiwgZHgpIHsKICAgIHJldHVybiBmdW5jdGlvbih4KSB7CiAgICAgIHJldHVybiAoZih4ICsgZHgpIC0gZih4KSkgLyBkeDsKICAgIH07Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKE1hdGguYWJzKGRlcml2YXRpdmUoTWF0aC5zaW4sIDAuMDAwMSkoMCkgLSBkZXJpdmF0aXZlKE1hdGguc2luLCAwLjAwMDEpKDIqTWF0aC5QSSkpID49IDEvNjU1MzYuMCkgewoJJEVSUk9SKCcjMTogTWF0aC5hYnMoZGVyaXZhdGl2ZShNYXRoLnNpbiwgMC4wMDAxKSgwKSAtIGRlcml2YXRpdmUoTWF0aC5zaW4sIDAuMDAwMSkoMipNYXRoLlBJKSkgPD0gMS82NTUzNi4wJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Closures are admitted","description":"Returning a function that approximates the derivative of f\nusing an interval of dx, which should be appropriately small","path":"TestCases/ch13/13.2/S13.2.1_A5_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBQcmltaXRpdmUgdHlwZXMgYXJlIHBhc3NlZCBieSB2YWx1ZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNl9UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiZnVuY3Rpb24gX19mdW5jKGFyZzEsIGFyZzIpIgogKi8KCmZ1bmN0aW9uIF9fZnVuYyhhcmcxLCBhcmcyKXsKICAgIGFyZzErKzsKICAgIGFyZzIrPSJCQSI7Cn07Cgp2YXIgeD0xOwp5PTI7CnZhciBhPSJBQiIKYj0iU0FNIjsKCl9fZnVuYyh4LGEpOwpfX2Z1bmMoeSxiKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHghPT0xIHx8IHkhPT0yIHx8IGEhPT0iQUIiIHx8IGIhPT0iU0FNIikgewoJJEVSUk9SKCcjMTogeCA9PT0gMSBhbmQgeSA9PT0gMiBhbmQgYSA9PT0gIkFCIiBhbmQgYiA9PT0gIlNBTSIuIEFjdHVhbDogeCA9PT0nK3grJyBhbmQgeSA9PT0nK3krJyBhbmQgYSA9PT0nK2ErJyBhbmQgYiA9PT0nK2IpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Primitive types are passed by value","description":"Declaring a function with \"function __func(arg1, arg2)\"","path":"TestCases/ch13/13.2/S13.2.1_A6_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBQcmltaXRpdmUgdHlwZXMgYXJlIHBhc3NlZCBieSB2YWx1ZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNl9UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiX19mdW5jID0gZnVuY3Rpb24oYXJnMSwgYXJnMikiCiAqLwoKX19mdW5jID0gZnVuY3Rpb24oYXJnMSwgYXJnMil7CiAgICBhcmcxKys7CiAgICBhcmcyKz0iQkEiOwp9OwoKdmFyIHg9MTsKeT0yOwp2YXIgYT0iQUIiCmI9IlNBTSI7CgpfX2Z1bmMoeCxhKTsKX19mdW5jKHksYik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh4IT09MSB8fCB5IT09MiB8fCBhIT09IkFCIiB8fCBiIT09IlNBTSIpIHsKCSRFUlJPUignIzE6IHggPT09IDEgYW5kIHkgPT09IDIgYW5kIGEgPT09ICJBQiIgYW5kIGIgPT09ICJTQU0iLiBBY3R1YWw6IHggPT09Jyt4KycgYW5kIHkgPT09Jyt5KycgYW5kIGEgPT09JythKycgYW5kIGIgPT09JytiKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Primitive types are passed by value","description":"Declaring a function with \"__func = function(arg1, arg2)\"","path":"TestCases/ch13/13.2/S13.2.1_A6_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgbnVsbC4gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiZnVuY3Rpb24gX19mdW5jKCkiCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB2YXIgeCA9IG51bGw7CiAgICByZXR1cm4geDsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnl7CiAgICB2YXIgeD1fX2Z1bmMoKTsKfSBjYXRjaChlKXsKICAgICRFUlJPUignIzE6IHZhciB4PV9fZnVuYygpIGRvZXMgbm90IGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uLiBBY3R1YWw6IGV4Y2VwdGlvbiBpcyAnK2UpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"When the [[Call]] property for a Function object F is called, the following steps are taken:\n2. Evaluate F's FunctionBody;\nif Result.type is returned then Result.value is returned too","description":"Returning null. Declaring a function with \"function __func()\"","path":"TestCases/ch13/13.2/S13.2.1_A7_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgbnVsbC4gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAidmFyIF9fZnVuYyA9IGZ1bmN0aW9uICgpIgogKi8KCnZhciBfX2Z1bmMgPSBmdW5jdGlvbiAoKXsKICAgIHZhciB4ID0gbnVsbDsKICAgIHJldHVybiB4Owp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCnRyeXsKICAgIHZhciB4PV9fZnVuYygpOwp9IGNhdGNoKGUpewogICAgJEVSUk9SKCcjMTogdmFyIHg9X19mdW5jKCkgZG9lcyBub3QgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24uIEFjdHVhbDogZXhjZXB0aW9uIGlzICcrZSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"When the [[Call]] property for a Function object F is called, the following steps are taken:\n2. Evaluate F's FunctionBody;\nif Result.type is returned then Result.value is returned too","description":"Returning null. Declaring a function with \"var __func = function ()\"","path":"TestCases/ch13/13.2/S13.2.1_A7_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1QzLmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgbnVtYmVyLiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMoKSIKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXsKICAgIHggPSAxOwogICAgcmV0dXJuIHg7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIwp0cnkgewoJeD14OwoJJEVSUk9SKCcjMDogIng9eCIgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogICAgaWYgKGUgaW5zdGFuY2VvZiBUZXN0MjYyRXJyb3IpIHRocm93IGU7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCnRyeXsKICAgIHZhciBfX3g9X19mdW5jKCk7Cn0gY2F0Y2goZSl7CiAgICAkRVJST1IoJyMxOiB2YXIgX194PV9fZnVuYygpIGRvZXMgbm90IGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uLiBBY3R1YWw6IGV4Y2VwdGlvbiBpcyAnK2UpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX194ICE9PSAxKSB7CgkkRVJST1IoJyMyOiBfX3ggPT09IDEuIEFjdHVhbDogX194ID09PScrX194KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKHggIT09IDEpIHsKCSRFUlJPUignIzM6IHggPT09IDEuIEFjdHVhbDogeCA9PT0nK3gpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCg==","commentary":"When the [[Call]] property for a Function object F is called, the following steps are taken:\n2. Evaluate F's FunctionBody;\nif Result.type is returned then Result.value is returned too","description":"Returning number. Declaring a function with \"function __func()\"","path":"TestCases/ch13/13.2/S13.2.1_A7_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1Q0LmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgYm9vbGVhbi4gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiZnVuY3Rpb24gX19mdW5jKCkiCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB2YXIgeCA9IHRydWU7CiAgICByZXR1cm4geDsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjCnRyeSB7Cgl4PXg7CgkkRVJST1IoJyMwOiAieD14IiBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOw0KfSBjYXRjaCAoZSkgew0KICAgIGlmIChlIGluc3RhbmNlb2YgVGVzdDI2MkVycm9yKSB0aHJvdyBlOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnl7CiAgICB2YXIgX194PV9fZnVuYygpCn0gY2F0Y2goZSl7CiAgICAkRVJST1IoJyMxOiB2YXIgX194PV9fZnVuYygpIGRvZXMgbm90IGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uLiBBY3R1YWw6IGV4Y2VwdGlvbiBpcyAnK2UpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoIShfX3gpKSB7CgkkRVJST1IoJyMyOiBfX3ggPT09IHRydWUuIEFjdHVhbDogX194ID09PScrX194KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKdHJ5IHsKCXg9eDsKCSRFUlJPUignIzM6ICJ4PXgiIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7DQp9IGNhdGNoIChlKSB7DQogICAgaWYgKGUgaW5zdGFuY2VvZiBUZXN0MjYyRXJyb3IpIHRocm93IGU7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoK","commentary":"When the [[Call]] property for a Function object F is called, the following steps are taken:\n2. Evaluate F's FunctionBody;\nif Result.type is returned then Result.value is returned too","description":"Returning boolean. Declaring a function with \"function __func()\"","path":"TestCases/ch13/13.2/S13.2.1_A7_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyB0aHJvd24gdGhlbiBSZXN1bHQudmFsdWUgaXMgdGhyb3duIHRvbwogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BOF9UMS5qcwogKiBAZGVzY3JpcHRpb24gVGhyb3dpbmcgYW4gZXhjZXB0aW9uIHdpdGhpbiBhIGZ1bmN0aW9uIGJvZHkuIERlY2xhcmluZyBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMoKSIKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXsKICAgIHZhciB4ID0gMTsKICAgIHRocm93ICgiQ2F0Y2ggTWUgSWYgWW91IENhbiIpCiAgICByZXR1cm4geDsKfQoKdHJ5ewogICAgdmFyIHg9X19mdW5jKCkKICAgICRFUlJPUignIzA6IHZhciB4PV9fZnVuYygpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0gY2F0Y2goZSl7CiAgICBpZiAoZSAhPT0gIkNhdGNoIE1lIElmIFlvdSBDYW4iKSB7CiAgICAJJEVSUk9SKCcjMTogRXhjZXB0aW9uID09PSAiQ2F0Y2ggTWUgSWYgWW91IENhbiIuIEFjdHVhbDogZXhjZXB0aW9uID09PScrZSk7CiAgICB9Cn0KCg==","commentary":"When the [[Call]] property for a Function object F is called, the following steps are taken:\n2. Evaluate F's FunctionBody;\nif Result.type is thrown then Result.value is thrown too","description":"Throwing an exception within a function body. Declaring function with \"function __func()\"","path":"TestCases/ch13/13.2/S13.2.1_A8_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyB0aHJvd24gdGhlbiBSZXN1bHQudmFsdWUgaXMgdGhyb3duIHRvbwogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BOF9UMi5qcwogKiBAZGVzY3JpcHRpb24gVGhyb3dpbmcgYW4gZXhjZXB0aW9uIHdpdGhpbiBhIGZ1bmN0aW9uIGJvZHkuIERlY2xhcmluZyBmdW5jdGlvbiB3aXRoICJ2YXIgX19mdW5jID0gZnVuY3Rpb24gKG1lc3NhZ2UpIgogKi8KCnZhciBDQVRDSF9NRV9JRl9ZT1VfQ0FOID0gdHJ1ZTsKCnZhciBfX2Z1bmMgPSBmdW5jdGlvbiAobWVzc2FnZSl7CiAgICB2YXIgeCA9IDE7CiAgICB0aHJvdyAobWVzc2FnZSkKICAgIHJldHVybiB4Owp9Cgp0cnl7CiAgICB2YXIgeD1fX2Z1bmMoQ0FUQ0hfTUVfSUZfWU9VX0NBTikKICAgICRFUlJPUignIzA6IHZhciB4PV9fZnVuYyhDQVRDSF9NRV9JRl9ZT1VfQ0FOKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoKGUpewogICAgaWYgKCFlKSB7CiAgICAJJEVSUk9SKCcjMTogRXhjZXB0aW9uID09PSB0cnVlLiBBY3R1YWw6IGV4Y2VwdGlvbiA9PT0nK2UpOwogICAgfQp9Cgo=","commentary":"When the [[Call]] property for a Function object F is called, the following steps are taken:\n2. Evaluate F's FunctionBody;\nif Result.type is thrown then Result.value is thrown too","description":"Throwing an exception within a function body. Declaring function with \"var __func = function (message)\"","path":"TestCases/ch13/13.2/S13.2.1_A8_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgaXMgY2FsbGVkLAogKiB0aGUgYm9keSBpcyBldmFsdWF0ZWQgYW5kIGlmIGV2YWx1YXRpb24gcmVzdWx0IGhhcyB0eXBlICJub3JtYWwiLCB0aGVuICJ1bmRlZmluZWQiIGlzIHJldHVybmVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E5LjFfVDEuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggImZ1bmN0aW9uIF9fZnVuYygpIiBhbmQgbm8gInJldHVybiIgaW4gdGhlIGZ1bmN0aW9uIGJvZHkKICovCgp2YXIgeDsKCmZ1bmN0aW9uIF9fZnVuYygpewogICAgeCA9IHRydWU7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygpICE9PSB1bmRlZmluZWQpIHsKCSRFUlJPUignIzE6IF9fZnVuYygpID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19mdW5jKCkgPT09JytfX2Z1bmMoKSk7Cn07Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoIXgpIHsKCSRFUlJPUignIzI6IHggPT09IHRydWUuIEFjdHVhbDogeCA9PT0gJyt4KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"When the [[Call]] property for a Function object is called,\nthe body is evaluated and if evaluation result has type \"normal\", then \"undefined\" is returned","description":"Declaring a function with \"function __func()\" and no \"return\" in the function body","path":"TestCases/ch13/13.2/S13.2.1_A9.1_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgaXMgY2FsbGVkLAogKiB0aGUgYm9keSBpcyBldmFsdWF0ZWQgYW5kIGlmIGV2YWx1YXRpb24gcmVzdWx0IGhhcyB0eXBlICJub3JtYWwiLCB0aGVuICJ1bmRlZmluZWQiIGlzIHJldHVybmVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E5LjFfVDIuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggInZhciBfX2Z1bmMgPSBmdW5jdGlvbigpIiBhbmQgbm8gInJldHVybiIgaW4gdGhlIGZ1bmN0aW9uIGJvZHkKICovCgp2YXIgeDsKCnZhciBfX2Z1bmMgPSBmdW5jdGlvbigpewogICAgeCA9IHRydWU7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygpICE9PSB1bmRlZmluZWQpIHsKCSRFUlJPUignIzE6IF9fZnVuYygpID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19mdW5jKCkgPT09JytfX2Z1bmMoKSk7Cn07Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoIXgpIHsKCSRFUlJPUignIzI6IHggPT09IHRydWUuIEFjdHVhbDogeCA9PT0gJyt4KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"When the [[Call]] property for a Function object is called,\nthe body is evaluated and if evaluation result has type \"normal\", then \"undefined\" is returned","description":"Declaring a function with \"var __func = function()\" and no \"return\" in the function body","path":"TestCases/ch13/13.2/S13.2.1_A9.1_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgaXMgY2FsbGVkLAogKiB0aGUgYm9keSBpcyBldmFsdWF0ZWQgYW5kIGlmIGV2YWx1YXRpb24gcmVzdWx0IGhhcyB0eXBlICJyZXR1cm4iIGl0cyB2YWx1ZSBpcyBub3QgZGVmaW5lZCwgdGhlbiAidW5kZWZpbmVkIiBpcyByZXR1cm5lZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BOV9UMS5qcwogKiBAZGVzY3JpcHRpb24gVXNpbmcgInJldHVybiIgd2l0aCBubyBleHByZXNzaW9uLiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMoKSIKICovCgp2YXIgeDsgCgpmdW5jdGlvbiBfX2Z1bmMoKXsKICAgIHggPSAxOwogICAgcmV0dXJuOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoKSAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2Z1bmMoKSA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fZnVuYygpID09PScrX19mdW5jKCkpOwp9OwovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHghPT0xKSB7CgkkRVJST1IoJyMyOiB4ID09PSAxLiBBY3R1YWw6IHggPT09ICcreCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"When the [[Call]] property for a Function object is called,\nthe body is evaluated and if evaluation result has type \"return\" its value is not defined, then \"undefined\" is returned","description":"Using \"return\" with no expression. Declaring a function with \"function __func()\"","path":"TestCases/ch13/13.2/S13.2.1_A9_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgaXMgY2FsbGVkLAogKiB0aGUgYm9keSBpcyBldmFsdWF0ZWQgYW5kIGlmIGV2YWx1YXRpb24gcmVzdWx0IGhhcyB0eXBlICJyZXR1cm4iIGl0cyB2YWx1ZSBpcyBub3QgZGVmaW5lZCwgdGhlbiAidW5kZWZpbmVkIiBpcyByZXR1cm5lZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BOV9UMi5qcwogKiBAZGVzY3JpcHRpb24gVXNpbmcgInJldHVybiIgd2l0aCBubyBleHByZXNzaW9uLiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJ2YXIgX19mdW5jID0gZnVuY3Rpb24oKSIKICovCgp2YXIgeDsgCgp2YXIgX19mdW5jID0gZnVuY3Rpb24oKXsKICAgIHggPSAxOwogICAgcmV0dXJuOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoKSAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2Z1bmMoKSA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fZnVuYygpID09PScrX19mdW5jKCkpOwp9OwovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHghPT0xKSB7CgkkRVJST1IoJyMyOiB4ID09PSAxLiBBY3R1YWw6IHggPT09ICcreCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"When the [[Call]] property for a Function object is called,\nthe body is evaluated and if evaluation result has type \"return\" its value is not defined, then \"undefined\" is returned","description":"Using \"return\" with no expression. Declaring a function with \"var __func = function()\"","path":"TestCases/ch13/13.2/S13.2.1_A9_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBwb3NzaWJsZSBhcyBsb25nIGFzIHRoaXMuYW55X0Z1bmN0aW9uIGlzIGRlY2xhcmVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExMC5qcwogKiBAZGVzY3JpcHRpb24gQ2FsbGluZyBhIGZ1bmN0aW9uIGFzIGEgY29uc3RydWN0b3IgYWZ0ZXIgaXQgaGFzIGJlZW4gZGVjbGFyZWQKICovCgpmdW5jdGlvbiBGQUNUT1JZKCl7CiAgIHRoaXMuaWQgPSAwOwogICAKICAgdGhpcy5mdW5jID0gZnVuY3Rpb24gKCl7CiAgICAgIHJldHVybiA1OwogICB9CiAgIAogICB0aGlzLmlkID0gdGhpcy5mdW5jKCk7CiAgICAgCn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnkgewoJdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCk7Cn0gY2F0Y2ggKGUpIHsKCSRFUlJPUignIzE6IHZhciBvYmogPSBuZXcgRkFDVE9SWSgpIGRvZXMgbm90IGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uLiBBY3R1YWw6IEV4Y2VwdGlvbiBpcyAnK2UpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAob2JqLmlkICE9PSA1KSB7CgkkRVJST1IoJyMyOiBvYmouaWQgPT09IDUuIEFjdHVhbDogb2JqLmlkID09PScrb2JqLmlkKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Calling a function as a constructor is possible as long as this.any_Function is declared","description":"Calling a function as a constructor after it has been declared","path":"TestCases/ch13/13.2/S13.2.2_A10.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBwb3NzaWJsZSBhcyBsb25nIGFzIHRoaXMuYW55X0Z1bmN0aW9uIGlzIGRlY2xhcmVkIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTExLmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCB3aXRoICJmdW5jdGlvbiBmdW5jKCkiCiAqLwoKZnVuY3Rpb24gRkFDVE9SWSgpewogICB0aGlzLmlkID0gMDsKICAgICAgCiAgIHRoaXMuaWQgPSB0aGlzLmZ1bmMoKTsKICAgCiAgIGZ1bmN0aW9uIGZ1bmMoKXsKICAgICAgcmV0dXJuICJpZF9zdHJpbmciOwogICB9CiAgICAgCn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnkgewoJdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCk7CgkkRVJST1IoJyMxOiB2YXIgb2JqID0gbmV3IEZBQ1RPUlkoKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOw0KfSBjYXRjaCAoZSkgew0KICAgIGlmIChlIGluc3RhbmNlb2YgVGVzdDI2MkVycm9yKSB0aHJvdyBlOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCg==","commentary":"Calling a function as a constructor is possible as long as this.any_Function is declared and called","description":"Calling a function as a constructor after it has been declared with \"function func()\"","path":"TestCases/ch13/13.2/S13.2.2_A11.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBwb3NzaWJsZSBhcyBsb25nIGFzIHRoaXMuYW55X0Z1bmN0aW9uIGlzIGRlY2xhcmVkIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTEyLmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCB3aXRoICJmdW5jdGlvbiBmdW5jKCkiCiAqLwoKZnVuY3Rpb24gRkFDVE9SWSgpewogICB0aGlzLmlkID0gMDsKICAgICAgCiAgIHRoaXMuaWQgPSBmdW5jKCk7CiAgIAogICBmdW5jdGlvbiBmdW5jKCl7CiAgICAgIHJldHVybiAiaWRfc3RyaW5nIjsKICAgfQogICAgIAp9Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5IHsKCXZhciBvYmogPSBuZXcgRkFDVE9SWSgpOwp9IGNhdGNoIChlKSB7CgkkRVJST1IoJyMxOiB2YXIgb2JqID0gbmV3IEZBQ1RPUlkoKSBkb2VzIG5vdCBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbi4gQWN0dWFsOiBFeGNlcHRpb24gaXMgJytlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKG9iai5pZCAhPT0gImlkX3N0cmluZyIpIHsKCSRFUlJPUignIzI6IG9iai5pZCA9PT0gImlkX3N0cmluZyIuIEFjdHVhbDogb2JqLmlkID09PScrb2JqLmlkKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Calling a function as a constructor is possible as long as this.any_Function is declared and called","description":"Calling a function as a constructor after it has been declared with \"function func()\"","path":"TestCases/ch13/13.2/S13.2.2_A12.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBpbmFkbWlzc2libGUgYXMgbG9uZyBhcyB0aGlzLmFueV9GdW5jdGlvbiBpcyBkZWNsYXJlZCBieSBldmFsIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTEzLmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCBieSBldmFsCiAqLwoKZnVuY3Rpb24gRkFDVE9SWSgpewogICB0aGlzLmlkID0gMDsKICAgICAgCiAgIHRoaXMuaWQgPSBmdW5jKCk7CiAgIAogICBldmFsKCJmdW5jdGlvbiBmdW5jKCl7cmV0dXJuIFwiaWRfc3RyaW5nXCI7fSIpOwogICAgIAp9Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5IHsKCXZhciBvYmogPSBuZXcgRkFDVE9SWSgpOwoJJEVSUk9SKCcjMTogdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCkgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKTsNCn0gY2F0Y2ggKGUpIHsNCiAgICBpZiAoZSBpbnN0YW5jZW9mIFRlc3QyNjJFcnJvcikgdGhyb3cgZTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Calling a function as a constructor is inadmissible as long as this.any_Function is declared by eval and called","description":"Calling a function as a constructor after it has been declared by eval","path":"TestCases/ch13/13.2/S13.2.2_A13.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBpbmFkbWlzc2libGUgYXMgbG9uZyBhcyB0aGlzLmFueV9GdW5jdGlvbiBpcyBkZWNsYXJlZCBieSBldmFsIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTE0LmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCBieSBldmFsCiAqIEBub1N0cmljdAogKi8KCmZ1bmN0aW9uIEZBQ1RPUlkoKXsKICAgdGhpcy5pZCA9IDA7CgogICBldmFsKCJmdW5jdGlvbiBmdW5jKCl7cmV0dXJuIFwiaWRfc3RyaW5nXCI7fSIpOwoKICAgdGhpcy5pZCA9IGZ1bmMoKTsKCn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnkgewoJdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCk7Cn0gY2F0Y2ggKGUpIHsKCSRFUlJPUignIzE6IHZhciBvYmogPSBuZXcgRkFDVE9SWSgpIGRvZXMgbm90IGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Calling a function as a constructor is inadmissible as long as this.any_Function is declared by eval and called","description":"Calling a function as a constructor after it has been declared by eval","noStrict":"","path":"TestCases/ch13/13.2/S13.2.2_A14.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZCwKICogYW5kIHRoZSBvYmplY3QgY3JlYXRlZCBpbiB0aGUgZnVuY3Rpb24gaXMgcmV0dXJuZWQsIHRoZSBvYmplY3QgKGRlY2xhcmVkIHdpdGggInRoaXMiIHdpdGhpbiBhIGZ1bmN0aW9uKSB3aWxsIGJlIHN0cm9uZyBhbmQgaGVhbHRoeQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTVfVDEuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGRlY2xhcmVkIGF0IHRoZSBlbmQgb2YgdGhlIHByb2dyYW0gYW5kICJvYmoiIHByb3BlcnR5IGlzIGRlY2xhcmVkIHdpdGggInZhciBvYmogPSB7fSIKICovCgp2YXIgX19vYmogPSBuZXcgX19GQUNUT1JZKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2Ygb2JqICE9PSAidW5kZWZpbmVkIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIG9iaiA9PT0gInVuZGVmaW5lZCIuIEFjdHVhbDogdHlwZW9mIG9iaiA9PT0nK3R5cGVvZiBvYmopOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19vYmoucHJvcCAhPT0gIkEiKSB7CgkkRVJST1IoJyMyOiBfX29iai5wcm9wID09PSAiQSIuIEFjdHVhbDogX19vYmoucHJvcCA9PT0nK19fb2JqLnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19vYmouc2xvdC5wcm9wICE9PTEpIHsKCSRFUlJPUignIzM6IF9fb2JqLnNsb3QucHJvcCA9PT0xLiBBY3R1YWw6IF9fb2JqLnNsb3QucHJvcCA9PT0nK19fb2JqLnNsb3QucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXsKICAgIHRoaXMucHJvcCA9IDE7CiAgICB2YXIgb2JqID0ge307CiAgICBvYmoucHJvcCA9ICJBIjsKICAgIG9iai5zbG90ID0gdGhpczsKICAgIHJldHVybiBvYmo7Cn0KCg==","commentary":"When the [[Construct]] property for a Function object F is called,\nand the object created in the function is returned, the object (declared with \"this\" within a function) will be strong and healthy","description":"Function declared at the end of the program and \"obj\" property is declared with \"var obj = {}\"","path":"TestCases/ch13/13.2/S13.2.2_A15_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZCwKICogYW5kIHRoZSBvYmplY3QgY3JlYXRlZCBpbiB0aGUgZnVuY3Rpb24gaXMgcmV0dXJuZWQsIHRoZSBvYmplY3QgKGRlY2xhcmVkIHdpdGggInRoaXMiIHdpdGhpbiBhIGZ1bmN0aW9uKSB3aWxsIGJlIHN0cm9uZyBhbmQgaGVhbHRoeQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTVfVDIuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGRlY2xhcmVkIGF0IHRoZSBlbmQgb2YgdGhlIHByb2dyYW0gYW5kICJvYmoiIHByb3BlcnR5IGlzIGRlY2xhcmVkIHdpdGggIm9iaiA9IHt9IgogKi8KCnZhciBfX29iaiA9IG5ldyBfX0ZBQ1RPUlkoKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKG9iai5wcm9wICE9PSAiQSIpIHsKCSRFUlJPUignIzE6IG9iai5wcm9wID09PSAiQSIuIEFjdHVhbDogb2JqLnByb3AgPT09JytvYmoucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX29iai5wcm9wICE9PSAiQSIpIHsKCSRFUlJPUignIzI6IF9fb2JqLnByb3AgPT09ICJBIi4gQWN0dWFsOiBfX29iai5wcm9wID09PScrX19vYmoucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmIChfX29iai5zbG90LnByb3AgIT09MSkgewoJJEVSUk9SKCcjMzogX19vYmouc2xvdC5wcm9wID09PSAxLiBBY3R1YWw6IF9fb2JqLnNsb3QucHJvcCA9PT0nK19fb2JqLnNsb3QucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXsKICAgIHRoaXMucHJvcCA9IDE7CiAgICBvYmogPSB7fTsKICAgIG9iai5wcm9wID0gIkEiOwogICAgb2JqLnNsb3QgPSB0aGlzOwogICAgcmV0dXJuIG9iajsKfQoK","commentary":"When the [[Construct]] property for a Function object F is called,\nand the object created in the function is returned, the object (declared with \"this\" within a function) will be strong and healthy","description":"Function declared at the end of the program and \"obj\" property is declared with \"obj = {}\"","path":"TestCases/ch13/13.2/S13.2.2_A15_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZCwKICogYW5kIHRoZSBvYmplY3QgY3JlYXRlZCBpbiB0aGUgZnVuY3Rpb24gaXMgcmV0dXJuZWQsIHRoZSBvYmplY3QgKGRlY2xhcmVkIHdpdGggInRoaXMiIHdpdGhpbiBhIGZ1bmN0aW9uKSB3aWxsIGJlIHN0cm9uZyBhbmQgaGVhbHRoeQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTVfVDMuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGRlY2xhcmVkIGF0IHRoZSBlbmQgb2YgdGhlIHByb2dyYW0gYW5kICJvYmoiIHByb3BlcnR5IGlzIGRlY2xhcmVkIHdpdGggInZhciBvYmogPSB7fSIKICovCgpfX0ZBQ1RPUlkgPSBmdW5jdGlvbiAoKXsKICAgIHRoaXMucHJvcCA9IDE7CiAgICB2YXIgb2JqID0ge307CiAgICBvYmoucHJvcCA9ICJBIjsKICAgIG9iai5zbG90ID0gdGhpczsKICAgIHJldHVybiBvYmo7Cn0KCl9fb2JqID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iaiAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBvYmogPT09ICJ1bmRlZmluZWQiLiBBY3R1YWw6IHR5cGVvZiBvYmogPT09Jyt0eXBlb2Ygb2JqKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLnByb3AgIT09ICJBIikgewoJJEVSUk9SKCcjMjogX19vYmoucHJvcCA9PT0gIkEiLiBBY3R1YWw6IF9fb2JqLnByb3AgPT09JytfX29iai5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKF9fb2JqLnNsb3QucHJvcCAhPT0xKSB7CgkkRVJST1IoJyMzOiBfX29iai5zbG90LnByb3AgPT09MS4gQWN0dWFsOiBfX29iai5zbG90LnByb3AgPT09JytfX29iai5zbG90LnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"When the [[Construct]] property for a Function object F is called,\nand the object created in the function is returned, the object (declared with \"this\" within a function) will be strong and healthy","description":"Function declared at the end of the program and \"obj\" property is declared with \"var obj = {}\"","path":"TestCases/ch13/13.2/S13.2.2_A15_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZCwKICogYW5kIHRoZSBvYmplY3QgY3JlYXRlZCBpbiB0aGUgZnVuY3Rpb24gaXMgcmV0dXJuZWQsIHRoZSBvYmplY3QgKGRlY2xhcmVkIHdpdGggInRoaXMiIHdpdGhpbiBhIGZ1bmN0aW9uKSB3aWxsIGJlIHN0cm9uZyBhbmQgaGVhbHRoeQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTVfVDQuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGRlY2xhcmVkIGF0IHRoZSBlbmQgb2YgdGhlIHByb2dyYW0gYW5kICJvYmoiIHByb3BlcnR5IGlzIGRlY2xhcmVkIHdpdGggIm9iaiA9IHt9IgogKi8KCl9fRkFDVE9SWSA9IGZ1bmN0aW9uKCl7CiAgICB0aGlzLnByb3AgPSAxOwogICAgb2JqID0ge307CiAgICBvYmoucHJvcCA9ICJBIjsKICAgIG9iai5zbG90ID0gdGhpczsKICAgIHJldHVybiBvYmo7Cn0KCl9fb2JqID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAob2JqLnByb3AgIT09ICJBIikgewoJJEVSUk9SKCcjMTogb2JqLnByb3AgPT09ICJBIi4gQWN0dWFsOiBvYmoucHJvcCA9PT0nK29iai5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLnByb3AgIT09ICJBIikgewoJJEVSUk9SKCcjMjogX19vYmoucHJvcCA9PT0gIkEiLiBBY3R1YWw6IF9fb2JqLnByb3AgPT09JytvYmoucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmIChfX29iai5zbG90LnByb3AgIT09MSkgewoJJEVSUk9SKCcjMzogX19vYmouc2xvdC5wcm9wID09PTEuIEFjdHVhbDogX19vYmouc2xvdC5wcm9wID09PScrb2JqLnNsb3QucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoK","commentary":"When the [[Construct]] property for a Function object F is called,\nand the object created in the function is returned, the object (declared with \"this\" within a function) will be strong and healthy","description":"Function declared at the end of the program and \"obj\" property is declared with \"obj = {}\"","path":"TestCases/ch13/13.2/S13.2.2_A15_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gd2l0aGluIGEgbmV3IHN0YXRlbWVudCBpcyBhZG1pdHRlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTZfVDEuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nICJpcyBfX29iaiA9IG5ldyBmdW5jdGlvbiBfX2Z1bmMoKXt0aGlzLnByb3A9MTt9IiBhcyBGdW5jdGlvbkV4cHJlc3Npb24KICovCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19mdW5jICE9PSAidW5kZWZpbmVkIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gInVuZGVmaW5lZCIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fb2JqID0gbmV3IGZ1bmN0aW9uIF9fZnVuYygpe3RoaXMucHJvcD0xO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX29iai5wcm9wICE9PSAxKSB7CgkkRVJST1IoJyMyOiBfX29iai5wcm9wID09PSAxLiBBY3R1YWw6IF9fb2JqLnByb3AgPT09JytfX29iai5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzUKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJ1bmRlZmluZWQiKSB7CgkkRVJST1IoJyM1OiB0eXBlb2YgX19mdW5jID09PSAidW5kZWZpbmVkIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"FunctionExpression within a new statement is admitted","description":"Using \"is __obj = new function __func(){this.prop=1;}\" as FunctionExpression","path":"TestCases/ch13/13.2/S13.2.2_A16_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gd2l0aGluIGEgbmV3IHN0YXRlbWVudCBpcyBhZG1pdHRlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTZfVDIuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nICJ2YXIgX19vYmogPSBuZXcgZnVuY3Rpb24gX19mdW5jKGFyZyl7dGhpcy5wcm9wPWFyZzt9KDUpIiBhcyBGdW5jdGlvbkV4cHJlc3Npb24KICovCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19mdW5jICE9PSAidW5kZWZpbmVkIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gInVuZGVmaW5lZCIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fb2JqID0gbmV3IGZ1bmN0aW9uIF9fZnVuYyhhcmcpe3RoaXMucHJvcD1hcmc7fSg1KTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLnByb3AgIT09IDUpIHsKCSRFUlJPUignIzI6IF9fb2JqLnByb3AgPT09IDUuIEFjdHVhbDogX19vYmoucHJvcCA9PT0nK19fb2JqLnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAodHlwZW9mIF9fZnVuYyAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzM6IHR5cGVvZiBfX2Z1bmMgPT09ICJ1bmRlZmluZWQiLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"FunctionExpression within a new statement is admitted","description":"Using \"var __obj = new function __func(arg){this.prop=arg;}(5)\" as FunctionExpression","path":"TestCases/ch13/13.2/S13.2.2_A16_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gd2l0aGluIGEgbmV3IHN0YXRlbWVudCBpcyBhZG1pdHRlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTZfVDMuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nICJpcyBfX29iaiA9IG5ldyBmdW5jdGlvbiBfX2Z1bmMoYXJnKXt0aGlzLnByb3A9YXJnOyByZXR1cm4ge2ZlYXQ6ICsrYXJnfX0oNSkiIGFzIEZ1bmN0aW9uRXhwcmVzc2lvbgogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJ1bmRlZmluZWQiKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19mdW5jID09PSAidW5kZWZpbmVkIicpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fb2JqID0gbmV3IGZ1bmN0aW9uIF9fZnVuYyhhcmcpe3RoaXMucHJvcD1hcmc7IHJldHVybiB7ZmVhdDogKythcmd9fSg1KTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLnByb3AgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMjogX19vYmoucHJvcCA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fb2JqLnByb3AgPT09JytfX29iai5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKF9fb2JqLmZlYXQgIT09IDYpIHsKCSRFUlJPUignIzM6IF9fb2JqLmZlYXQgPT09IDYuIEFjdHVhbDogX19vYmouZmVhdCA9PT0nK19fb2JqLmZlYXQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNAppZiAodHlwZW9mIF9fZnVuYyAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzQ6IHR5cGVvZiBfX2Z1bmMgPT09ICJ1bmRlZmluZWQiLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"FunctionExpression within a new statement is admitted","description":"Using \"is __obj = new function __func(arg){this.prop=arg; return {feat: ++arg}}(5)\" as FunctionExpression","path":"TestCases/ch13/13.2/S13.2.2_A16_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gY29udGFpbmluZyAid2l0aCIgc3RhdGVtZW50IGlzIGFkbWl0dGVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExN19UMi5qcwogKiBAZGVzY3JpcHRpb24gVGhyb3dpbmcgYW4gZXhjZXB0aW9uIHdpdGhpbiAid2l0aCIgc3RhdGVtZW50CiAqLwoKdGhpcy5wMT0iYWxlcnQiOwoKX19vYmo9e3AxOjEsZ2V0UmlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gInJpZ2h0Ijt9fTsKCmdldFJpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuICJuYXByYXZvIjt9OwoKdHJ5IHsKCShmdW5jdGlvbigpewogICAgICAgIHdpdGgoX19vYmopewogICAgICAgICAgICBwMT0idzEiOwogICAgICAgICAgICBnZXRSaWdodD1mdW5jdGlvbigpe3JldHVybiBmYWxzZTt9CiAgICAgICAgICAgIHRocm93IHAxOwogICAgICAgIH0KICAgIH0pKCk7Cn0gY2F0Y2ggKGUpIHsKCXJlc3VrdCA9IHAxOwp9CgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAocDEhPT0iYWxlcnQiKSB7CgkkRVJST1IoJyMxOiBwMSA9PT0gImFsZXJ0Ii4gQWN0dWFsOiBwMT09PScrcDEpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoZ2V0UmlnaHQoKSE9PSJuYXByYXZvIikgewoJJEVSUk9SKCcjMjogZ2V0UmlnaHQoKSA9PT0gIm5hcHJhdm8iLiBBY3R1YWw6IGdldFJpZ2h0KCkgPT09ICcrZ2V0UmlnaHQoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmIChfX29iai5wMSE9PSJ3MSIpIHsKCSRFUlJPUignIzM6IF9fb2JqLnAxID09PSAidzEiLiBBY3R1YWw6IF9fb2JqLnAxID09PScrX19vYmoucDEpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNAppZiAoX19vYmouZ2V0UmlnaHQoKSE9PWZhbHNlKSB7CgkkRVJST1IoJyM0OiBfX29iai5nZXRSaWdodCgpID09PSBmYWxzZS4gQWN0dWFsOiBfX29iai5nZXRSaWdodCgpID09PSAnK19fb2JqLmdldFJpZ2h0KCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNQppZiAocmVzdWt0ICE9PSAiYWxlcnQiKSB7CgkkRVJST1IoJyM1OiByZXN1a3QgPT09ICJhbGVydCIuIEFjdHVhbDogcmVzdWt0ID09PScrcmVzdWt0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciByZXN1a3Q7CgoK","commentary":"FunctionExpression containing \"with\" statement is admitted","description":"Throwing an exception within \"with\" statement","path":"TestCases/ch13/13.2/S13.2.2_A17_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gY29udGFpbmluZyAid2l0aCIgc3RhdGVtZW50IGlzIGFkbWl0dGVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExN19UMy5qcwogKiBAZGVzY3JpcHRpb24gSW4gdGhlIGNoZWNrIDQgd2UgcG9wdWxhdGUgZmllbGQgZ2V0UmlnaHQgaW4gX19vYmogb2JqZWN0IHNpbmNlIHZhciBnZXRSaWdodCBkZWNsYXJhdGlvbiBhZGRzIHZhcmlhYmxlIHRvIGZ1bmN0aW9uIHNjb3BlCiAqIGJ1dCBnZXRSaWdodCBpbiBzdGF0ZW1lbnQgcmVzb2x2ZXMgd2l0aGluIHdpdGgoX19vYmopIHNjb3BlIGFuZCBzZWFyY2hzIGdldFJpZ2h0IGluIF9fb2JqIGZpcnN0CiAqLwoKcDE9ImFsZXJ0IjsKCnRoaXMuX19vYmo9e3AxOjEsZ2V0UmlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gInJpZ2h0Ijt9fTsKCnZhciBnZXRSaWdodD1mdW5jdGlvbigpe3JldHVybiAibmFwcmF2byI7fTsKCnJlc3VrdD0oZnVuY3Rpb24oKXsKICAgIHdpdGgoX19vYmopewogICAgICAgIHAxPSJ3MSI7CiAgICAgICAgdmFyIGdldFJpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlO307CiAgICAgICAgcmV0dXJuIHAxOwogICAgfQp9KSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAocDEhPT0iYWxlcnQiKSB7CgkkRVJST1IoJyMxOiBwMSA9PT0gImFsZXJ0Ii4gQWN0dWFsOiBwMT09PScrcDEpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoZ2V0UmlnaHQoKSE9PSJuYXByYXZvIikgewoJJEVSUk9SKCcjMjogZ2V0UmlnaHQoKSA9PT0gIm5hcHJhdm8iLiBBY3R1YWw6IGdldFJpZ2h0KCk9PT0nK2dldFJpZ2h0KCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19vYmoucDEhPT0idzEiKSB7CgkkRVJST1IoJyMzOiBfX29iai5wMSA9PT0gIncxIi4gQWN0dWFsOiBfX29iai5wMSA9PT0nK19fb2JqLnAxKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzQKaWYgKF9fb2JqLmdldFJpZ2h0KCkhPT1mYWxzZSkgewoJJEVSUk9SKCcjNDogX19vYmouZ2V0UmlnaHQoKSA9PT0gZmFsc2UuIEFjdHVhbDogX19vYmouZ2V0UmlnaHQoKT09PScrX19vYmouZ2V0UmlnaHQoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM1CmlmIChyZXN1a3QgIT09ICJ3MSIpIHsKCSRFUlJPUignIzU6IHJlc3VrdCA9PT0gIncxIi4gQWN0dWFsOiByZXN1a3QgPT09JytyZXN1a3QpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIHJlc3VrdDsKCgo=","commentary":"FunctionExpression containing \"with\" statement is admitted","description":"In the check 4 we populate field getRight in __obj object since var getRight declaration adds variable to function scope\nbut getRight in statement resolves within with(__obj) scope and searchs getRight in __obj first","path":"TestCases/ch13/13.2/S13.2.2_A17_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBVc2luZyBhcmd1bWVudHMgb2JqZWN0IHdpdGhpbiBhICJ3aXRoIiBFeHByZXNzaW9uIHRoYXQgaXMgbmVzdGVkIGluIGEgZnVuY3Rpb24gaXMgYWRtaXR0ZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTE4X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBPYmplY3QgaXMgZGVjbGFyZWQgd2l0aCAidmFyIF9fb2JqPXtjYWxsZWU6ImEifSIKICovCgp2YXIgY2FsbGVlPTAsIGI7Cgp2YXIgX19vYmo9e2NhbGxlZToiYSJ9OwoKcmVzdWx0PShmdW5jdGlvbigpewogICAgd2l0aCAoYXJndW1lbnRzKXsKICAgICAgICBjYWxsZWU9MTsKICAgICAgICBiPXRydWU7CiAgICB9CiAgICByZXR1cm4gYXJndW1lbnRzOwp9KShfX29iaik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChjYWxsZWUgIT09IDApIHsKCSRFUlJPUignIzE6IGNhbGxlZSA9PT0gMC4gQWN0dWFsOiBjYWxsZWUgPT09JytjYWxsZWUpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19vYmouY2FsbGVlICE9PSAiYSIpIHsKCSRFUlJPUignIzI6IF9fb2JqLmNhbGxlZSA9PT0gImEiLiBBY3R1YWw6IF9fb2JqLmNhbGxlZT09PScrX19vYmouY2FsbGVlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKHJlc3VsdC5jYWxsZWUgIT09IDEpIHsKCSRFUlJPUignIzM6IHJlc3VsdC5jYWxsZWUgPT09IDEuIEFjdHVhbDogcmVzdWx0LmNhbGxlZSA9PT0nK3Jlc3VsdC5jYWxsZWUpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNAppZiAoISh0aGlzLmIpKSB7CgkkRVJST1IoJyM0OiB0aGlzLmIgPT09IHRydWUuIEFjdHVhbDogdGhpcy5iID09PScrdGhpcy5iKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Using arguments object within a \"with\" Expression that is nested in a function is admitted","description":"Object is declared with \"var __obj={callee:\"a\"}\"","path":"TestCases/ch13/13.2/S13.2.2_A18_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBVc2luZyBhcmd1bWVudHMgb2JqZWN0IHdpdGhpbiBhICJ3aXRoIiBFeHByZXNzaW9uIHRoYXQgaXMgbmVzdGVkIGluIGEgZnVuY3Rpb24gaXMgYWRtaXR0ZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTE4X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBPYmplY3QgaXMgZGVjbGFyZWQgd2l0aCAiX19vYmo9e2NhbGxlZToiYSJ9IgogKi8KCnRoaXMuY2FsbGVlID0gMDsKdmFyIGI7CgpfX29iaj17Y2FsbGVlOiJhIn07CgpmdW5jdGlvbiBmKCl7CiAgICB3aXRoIChhcmd1bWVudHMpewogICAgICAgIGNhbGxlZT0xOwogICAgICAgIGI9dHJ1ZTsKICAgICAgICByZXR1cm4gYXJndW1lbnRzOwogICAgfQp9OwoKcmVzdWx0PWYoX19vYmopOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoY2FsbGVlICE9PSAwKSB7CgkkRVJST1IoJyMxOiBjYWxsZWUgPT09IDAuIEFjdHVhbDogY2FsbGVlID09PScrY2FsbGVlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLmNhbGxlZSAhPT0gImEiKSB7CgkkRVJST1IoJyMyOiBfX29iai5jYWxsZWUgPT09ICJhIi4gQWN0dWFsOiBfX29iai5jYWxsZWUgPT09JytfX29iai5jYWxsZWUpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAocmVzdWx0LmNhbGxlZSAhPT0gMSkgewoJJEVSUk9SKCcjMzogcmVzdWx0LmNhbGxlZSA9PT0gMS4gQWN0dWFsOiByZXN1bHQuY2FsbGVlID09PScrcmVzdWx0LmNhbGxlZSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM0CmlmICghKHRoaXMuYikpIHsKCSRFUlJPUignIzQ6IHRoaXMuYiA9PT0gdHJ1ZS4gQWN0dWFsOiB0aGlzLmIgPT09Jyt0aGlzLmIpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Using arguments object within a \"with\" Expression that is nested in a function is admitted","description":"Object is declared with \"__obj={callee:\"a\"}\"","path":"TestCases/ch13/13.2/S13.2.2_A18_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDEuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBnbG9iYWwgc2NvcGUKICovCgp2YXIgYSA9IDE7Cgp2YXIgX19mdW5jPSBmdW5jdGlvbigpe3JldHVybiBhO307Cgp2YXIgX19vYmogPSB7YToyfTsKCndpdGggKF9fb2JqKQp7CiAgICByZXN1bHQgPSBfX2Z1bmMoKTsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAocmVzdWx0ICE9PSAxKSB7CgkkRVJST1IoJyMxOiByZXN1bHQgPT09IDEuIEFjdHVhbDogcmVzdWx0ID09PScrcmVzdWx0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Function's scope chain is started when it is declared","description":"Function is declared in the global scope","path":"TestCases/ch13/13.2/S13.2.2_A19_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDIuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBvYmplY3Qgc2NvcGUuIFVzaW5nICJ3aXRoIiBzdGF0ZW1lbnQKICovCgp2YXIgYSA9IDE7Cgp2YXIgX19vYmogPSB7YToyfTsKCndpdGggKF9fb2JqKQp7CiAgICByZXN1bHQgPSAoZnVuY3Rpb24oKXtyZXR1cm4gYTt9KSgpOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChyZXN1bHQgIT09IDIpIHsKCSRFUlJPUignIzE6IHJlc3VsdCA9PT0gMi4gQWN0dWFsOiByZXN1bHQgPT09JytyZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Function's scope chain is started when it is declared","description":"Function is declared in the object scope. Using \"with\" statement","path":"TestCases/ch13/13.2/S13.2.2_A19_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDMuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBvYmplY3Qgc2NvcGUgYW5kIHRoZW4gYW4gZXhjZXB0aW9uIGlzIHRocm93bgogKi8KCnZhciBhID0gMTsKCnZhciBfX29iaiA9IHthOjJ9OwoKdHJ5IHsKCXdpdGggKF9fb2JqKQogICAgewogICAgICAgIHZhciBfX2Z1bmMgPSBmdW5jdGlvbiAoKXtyZXR1cm4gYTt9OwogICAgICAgIHRocm93IDM7CiAgICB9Cn0gY2F0Y2ggKGUpIHsKCTsKfQoKcmVzdWx0ID0gX19mdW5jKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChyZXN1bHQgIT09IDIpIHsKCSRFUlJPUignIzE6IHJlc3VsdCA9PT0gMi4gQWN0dWFsOiByZXN1bHQgPT09JytyZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoK","commentary":"Function's scope chain is started when it is declared","description":"Function is declared in the object scope and then an exception is thrown","path":"TestCases/ch13/13.2/S13.2.2_A19_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDQuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBoaWVyYXJjaGljYWwgb2JqZWN0IHNjb3BlIGFuZCB0aGVuIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24KICovCgp2YXIgYSA9IDE7Cgp2YXIgX19vYmogPSB7YToyLF9fb2JqOnthOjN9fTsKCnRyeSB7Cgl3aXRoIChfX29iaikKICAgIHsKICAgICAgICB3aXRoKF9fb2JqKXsKICAgICAgICAgICAgdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCl7cmV0dXJuIGE7fTsKICAgICAgICAgICAgdGhyb3cgNTsKICAgICAgICB9CiAgICB9Cn0gY2F0Y2ggKGUpIHsKCTsKfQoKcmVzdWx0ID0gX19mdW5jKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChyZXN1bHQgIT09IDMpIHsKCSRFUlJPUignIzE6IHJlc3VsdCA9PT0gMy4gQWN0dWFsOiByZXN1bHQgPT09JytyZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoK","commentary":"Function's scope chain is started when it is declared","description":"Function is declared in the hierarchical object scope and then an exception is thrown","path":"TestCases/ch13/13.2/S13.2.2_A19_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDUuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBvYmplY3Qgc2NvcGUsIHRoZW4gYW4gZXhjZXB0aW9uIGlzIHRocm93biBhbmQgdGhlIG9iamVjdCBpcyBkZWxldGVkCiAqLwoKdmFyIGEgPSAxOwoKdmFyIF9fb2JqID0ge2E6Mn07Cgp3aXRoIChfX29iaikKewogICAgdHJ5IHsKICAgICAgICAKICAgIAl2YXIgX19mdW5jID0gZnVuY3Rpb24oKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIGE7CiAgICAgICAgfQogICAgICAgIHRocm93IDM7CiAgICB9IGNhdGNoIChlKSB7CiAgICAJOwogICAgfQp9CgpkZWxldGUgX19vYmo7CgpyZXN1bHQgPSBfX2Z1bmMoKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHJlc3VsdCAhPT0gMikgewoJJEVSUk9SKCcjMTogcmVzdWx0ID09PSAyLiBBY3R1YWw6IHJlc3VsdCA9PT0nK3Jlc3VsdCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Function's scope chain is started when it is declared","description":"Function is declared in the object scope, then an exception is thrown and the object is deleted","path":"TestCases/ch13/13.2/S13.2.2_A19_T5.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDYuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSAib2JqZWN0LT5kby13aGlsZSIgc2NvcGUsIHRoZW4gdGhlIG9iamVjdCBpcyBkZWxldGVkIGFuZCBhbm90aGVyIG9iamVjdCB3aXRoIHRoZSBzYW1lIG5hbWUgaXMgZGVjbGFyZWQKICovCgp2YXIgYSA9IDE7Cgp2YXIgX19vYmogPSB7YToyfTsKCndpdGggKF9fb2JqKQp7CiAgICBkbyB7CiAgICAgICAgdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBhOwogICAgICAgIH0KICAgIH0gd2hpbGUoMCk7Cn0KCmRlbGV0ZSBfX29iajsKCnZhciBfX29iaiA9IHthOjN9OwoKd2l0aCAoX19vYmopCnsKICAgIHJlc3VsdCA9IF9fZnVuYygpOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChyZXN1bHQgIT09IDIpIHsKCSRFUlJPUignIzE6IHJlc3VsdCA9PT0gMi4gQWN0dWFsOiByZXN1bHQgPT09JytyZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoKCgo=","commentary":"Function's scope chain is started when it is declared","description":"Function is declared in the \"object->do-while\" scope, then the object is deleted and another object with the same name is declared","path":"TestCases/ch13/13.2/S13.2.2_A19_T6.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDcuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBvYmplY3Qgc2NvcGUgYXMgYSB2YXJpYWJsZQogKi8KCnZhciBhID0gMTsKCnZhciBfX29iaiA9IHthOjJ9OwoKd2l0aCAoX19vYmopCnsKICAgIHZhciBfX2Z1bmMgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuIGE7CiAgICB9Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fb2JqLmhhc093blByb3BlcnR5KCdfX2Z1bmMnKSkgewoJJEVSUk9SKCcjMTogX19vYmouaGFzT3duUHJvcGVydHkoXCdfX2Z1bmNcJykgPT09IGZhbHNlJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoISh0aGlzLmhhc093blByb3BlcnR5KCdfX2Z1bmMnKSkpIHsKCSRFUlJPUignIzI6IHRoaXMuaGFzT3duUHJvcGVydHkoXCdfX2Z1bmNcJykgPT09IHRydWUnKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKF9fZnVuYyBpbiBfX29iaikgewoJJEVSUk9SKCcjMzogKF9fZnVuYyBpbiBfX29iaikgPT09IGZhbHNlJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM0CmlmICh0aGlzLl9fZnVuYyA9PT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyM0OiB0aGlzLl9fZnVuYyAhPT0gdW5kZWZpbmVkJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Function's scope chain is started when it is declared","description":"Function is declared in the object scope as a variable","path":"TestCases/ch13/13.2/S13.2.2_A19_T7.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDguanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIG11bHRpcGx5IHRpbWVzCiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMAppZiAodHlwZW9mIF9fZnVuYyAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzA6IHR5cGVvZiBfX2Z1bmMgPT09ICJ1bmRlZmluZWQiLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBhID0gMSwgYiA9ICJhIjsKCnZhciBfX29iaiA9IHthOjJ9OwoKd2l0aCAoX19vYmopCnsKICAgIHdoaWxlKDEpewogICAgICAgIHZhciAgX19mdW5jID0gZnVuY3Rpb24oKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIGE7CiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgIH0KfQoKZGVsZXRlIF9fb2JqOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKCkgIT09IDIpIHsKCSRFUlJPUignIzE6IF9fZnVuYygpID09PSAyLiBBY3R1YWw6IF9fZnVuYygpID09PScrX19mdW5jKCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fb2JqID0ge2E6MyxiOiJiIn07Cgp3aXRoIChfX29iaikKewogICAgdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gYjsKICAgIH0KfQoKZGVsZXRlIF9fb2JqOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCkhPT0iYiIpIHsKCSRFUlJPUignIzI6IF9fZnVuYygpPT09ImIiLiBBY3R1YWw6IF9fZnVuYygpPT09JytfX2Z1bmMoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgp3aXRoICh7YTo5OSxiOiJjIn0pCnsKICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgLy9DSEVDSyMzCiAgICBpZiAoX19mdW5jKCkgIT09ICJiIikgewogICAgCSRFUlJPUignIzM6IF9fZnVuYygpPT09ImIiLiBBY3R1YWw6IF9fZnVuYygpPT09JytfX2Z1bmMoKSk7CiAgICB9CiAgICAvLwogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCn0KCg==","commentary":"Function's scope chain is started when it is declared","description":"Function is declared multiply times","path":"TestCases/ch13/13.2/S13.2.2_A19_T8.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhIGZ1bmN0aW9uIGlzIGFuIG9iamVjdCwgaXQgbWlnaHQgYmUgc2V0IHRvIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgYSBuZXcgY3JlYXRlZCBvYmplY3QgdGhyb3VnaCBbW0NvbnN0cnVjdF1dIHByb3BlcnR5CiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMoKSIKICovCgp2YXIgX19NT05TVEVSPSJtb25zdGVyIjsKdmFyIF9fUFJFREFUT1I9InByZWRhdG9yIjsKCmZ1bmN0aW9uIF9fUFJPVE8oKXt9OwoKdHJ5ewogICAgX19QUk9UTy50eXBlPV9fTU9OU1RFUjsKfQpjYXRjaChlKXsKICAgICRFUlJPUignIzA6IF9fUFJPVE8udHlwZT1fX01PTlNURVIgZG9lcyBub3QgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKQp9CgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXt0aGlzLm5hbWU9X19QUkVEQVRPUn07CgpfX0ZBQ1RPUlkucHJvdG90eXBlPV9fUFJPVE87Cgp2YXIgX19tb25zdGVyID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIShfX1BST1RPLmlzUHJvdG90eXBlT2YoX19tb25zdGVyKSkpIHsKCSRFUlJPUignIzE6IF9fUFJPVE8uaXNQcm90b3R5cGVPZihfX21vbnN0ZXIpIG11c3QgYmUgdHJ1ZScpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19tb25zdGVyLnR5cGUgIT09X19NT05TVEVSKSB7CgkkRVJST1IoJyMyOiBfX21vbnN0ZXIudHlwZSA9PT1fX01PTlNURVIuIEFjdHVhbDogX19tb25zdGVyLnR5cGUgPT09JytfX21vbnN0ZXIudHlwZSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Since a function is an object, it might be set to [[Prototype]] property of a new created object through [[Construct]] property","description":"Declaring a function with \"function __func()\"","path":"TestCases/ch13/13.2/S13.2.2_A1_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhIGZ1bmN0aW9uIGlzIGFuIG9iamVjdCwgaXQgbWlnaHQgYmUgc2V0IHRvIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgYSBuZXcgY3JlYXRlZCBvYmplY3QgdGhyb3VnaCBbW0NvbnN0cnVjdF1dIHByb3BlcnR5CiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJ2YXIgX19QUk9UTyA9IGZ1bmN0aW9uKCkiCiAqLwoKdmFyIF9fTU9OU1RFUj0ibW9uc3RlciI7CnZhciBfX1BSRURBVE9SPSJwcmVkYXRvciI7Cgp2YXIgX19QUk9UTyA9IGZ1bmN0aW9uKCl7fTsKCnRyeXsKICAgIF9fUFJPVE8udHlwZT1fX01PTlNURVI7Cn0KY2F0Y2goZSl7CiAgICAkRkFJTCgnIzA6IF9fUFJPVE8udHlwZT1fX01PTlNURVIgZG9lcyBub3QgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKQp9Cgp2YXIgX19GQUNUT1JZID0gZnVuY3Rpb24oKXt0aGlzLm5hbWU9X19QUkVEQVRPUn07CgpfX0ZBQ1RPUlkucHJvdG90eXBlPV9fUFJPVE87Cgp2YXIgX19tb25zdGVyID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIShfX1BST1RPLmlzUHJvdG90eXBlT2YoX19tb25zdGVyKSkpIHsKCSRFUlJPUignIzE6IF9fUFJPVE8uaXNQcm90b3R5cGVPZihfX21vbnN0ZXIpIG11c3QgYmUgdHJ1ZScpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19tb25zdGVyLnR5cGUgIT09X19NT05TVEVSKSB7CgkkRVJST1IoJyMyOiBfX21vbnN0ZXIudHlwZSA9PT1fX01PTlNURVIuIEFjdHVhbDogX19tb25zdGVyLnR5cGUgPT09JytfX21vbnN0ZXIudHlwZSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Since a function is an object, it might be set to [[Prototype]] property of a new created object through [[Construct]] property","description":"Declaring a function with \"var __PROTO = function()\"","path":"TestCases/ch13/13.2/S13.2.2_A1_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhIGZ1bmN0aW9uIGlzIGFuIG9iamVjdCwgaXQgbWlnaHQgYmUgc2V0IHRvIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgYSBuZXcgY3JlYXRlZCBvYmplY3QgdGhyb3VnaCBbW0NvbnN0cnVjdF1dIHByb3BlcnR5LAogKiBidXQgW1tjYWxsXV0gcHJvcGVydHkgbXVzdCBmYWlsIHdpdGggVHlwZUVycm9yIGVycm9yCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0EyLmpzCiAqIEBkZXNjcmlwdGlvbiBUcnlpbmcgdG8gW1tjYWxsXV0gdGhpcyBmdW5jdGlvbgogKi8KCnZhciBfX1BMQU5UPSJmbG93ZXIiOwp2YXIgX19ST1NFPSJyb3NlIjsKCmZ1bmN0aW9uIF9fUFJPVE8oKXt9OwoKdHJ5ewogICAgX19QUk9UTy50eXBlPV9fUExBTlQ7Cn0KY2F0Y2goZSl7CiAgICAkRVJST1IoJyMwOiBfX1BST1RPLnR5cGU9X19QTEFOVCBkb2VzIG5vdCBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpCn0KCmZ1bmN0aW9uIF9fRkFDVE9SWSgpe3RoaXMubmFtZT1fX1JPU0V9OwoKX19GQUNUT1JZLnByb3RvdHlwZT1fX1BST1RPOwoKdmFyIF9fcm9zZSA9IG5ldyBfX0ZBQ1RPUlkoKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5ewogICAgX19yb3NlKCk7CiAgICAkRVJST1IoJyMxOiBfX3Jvc2UoKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoKGUpewogICAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAgIAkkRVJST1IoJyMyOiBFeGNlcHRpb24gVHlwZSBpcyBUeXBlRXJyb3IuIEFjdHVhbDogZXhjZXB0aW9uID09PScrZSk7CiAgICB9Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Since a function is an object, it might be set to [[Prototype]] property of a new created object through [[Construct]] property,\nbut [[call]] property must fail with TypeError error","description":"Trying to [[call]] this function","path":"TestCases/ch13/13.2/S13.2.2_A2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEl0IGdldHMgdGhlIHZhbHVlIG9mIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBGKERlbm90ZSBpdCBQUk9UT19WQUwpLgogKiBJZiBQUk9UT19WQUwgaXMgbm90IGFuIG9iamVjdCwgc2V0cyB0aGUgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QganVzdCBjcmVhdGVkCiAqICB0byB0aGUgb3JpZ2luYWwgT2JqZWN0IHByb3RvdHlwZSBvYmplY3QgYXMgZGVzY3JpYmVkIGluIDE1LjIuMy4xCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0EzX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX0ZBQ1RPUlkoKSIKICovCgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXt9OwpfX0ZBQ1RPUlkucHJvdG90eXBlPTE7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19GQUNUT1JZLnByb3RvdHlwZSAhPT0gJ251bWJlcicpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlID09PSBcJ251bWJlclwnLiBBY3R1YWw6IHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlID09PScrKHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgp2YXIgX19kZXZpY2UgPSBuZXcgX19GQUNUT1JZKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICghKE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihfX2RldmljZSkpKSB7CgkkRVJST1IoJyMyOiBPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoX19kZXZpY2UpID09PSB0cnVlJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nIt gets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL).\nIf PROTO_VAL is not an object, sets the [[Prototype]] property of native ECMAScript object just created\n to the original Object prototype object as described in 15.2.3.1","description":"Declaring a function with \"function __FACTORY()\"","path":"TestCases/ch13/13.2/S13.2.2_A3_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEl0IGdldHMgdGhlIHZhbHVlIG9mIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBGKERlbm90ZSBpdCBQUk9UT19WQUwpLgogKiBJZiBQUk9UT19WQUwgaXMgbm90IGFuIG9iamVjdCwgc2V0cyB0aGUgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QganVzdCBjcmVhdGVkCiAqICB0byB0aGUgb3JpZ2luYWwgT2JqZWN0IHByb3RvdHlwZSBvYmplY3QgYXMgZGVzY3JpYmVkIGluIDE1LjIuMy4xCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0EzX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJ2YXIgX19GQUNUT1JZID0gZnVuY3Rpb24oKSIKICovCgp2YXIgX19GQUNUT1JZID0gZnVuY3Rpb24oKXt9OwpfX0ZBQ1RPUlkucHJvdG90eXBlPTE7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19GQUNUT1JZLnByb3RvdHlwZSAhPT0gJ251bWJlcicpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlID09PSBcJ251bWJlclwnLiBBY3R1YWw6IHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlID09PScrKHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgp2YXIgX19kZXZpY2UgPSBuZXcgX19GQUNUT1JZKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICghKE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihfX2RldmljZSkpKSB7CgkkRVJST1IoJyMyOiBPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoX19kZXZpY2UpID09PSB0cnVlJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nIt gets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL).\nIf PROTO_VAL is not an object, sets the [[Prototype]] property of native ECMAScript object just created\n to the original Object prototype object as described in 15.2.3.1","description":"Declaring a function with \"var __FACTORY = function()\"","path":"TestCases/ch13/13.2/S13.2.2_A3_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBGKERlbm90ZSBpdCBQUk9UT19WQUwpLgogKiBJZiBQUk9UT19WQUwgaXMgYW4gb2JqZWN0LCBzZXRzIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdCBqdXN0IGNyZWF0ZWQKICogdG8gdGhlIFBST1RPX1ZBTAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BNF9UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiZnVuY3Rpb24gX19GQUNUT1JZKCkiCiAqLwoKdmFyIF9fQ1VCRT0iY3ViZSI7CgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXsKfTsKX19GQUNUT1JZLnByb3RvdHlwZT17IHNoYXBlOl9fQ1VCRSwgcHJpbnRTaGFwZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYXBlO30gfTsKCnZhciBfX2RldmljZSA9IG5ldyBfX0ZBQ1RPUlkoKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZGV2aWNlLnByaW50U2hhcGUgPT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19kZXZpY2UucHJpbnRTaGFwZSAhPT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fZGV2aWNlLnByaW50U2hhcGUgPT09JytfX2RldmljZS5wcmludFNoYXBlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZGV2aWNlLnByaW50U2hhcGUoKSAhPT0gX19DVUJFKSB7CgkkRVJST1IoJyMyOiBfX2RldmljZS5wcmludFNoYXBlKCkgPT09IF9fQ1VCRS4gQWN0dWFsOiBfX2RldmljZS5wcmludFNoYXBlKCkgPT09JytfX2RldmljZS5wcmludFNoYXBlKCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nGets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL).\nIf PROTO_VAL is an object, sets the [[Prototype]] property of native ECMAScript object just created\nto the PROTO_VAL","description":"Declaring a function with \"function __FACTORY()\"","path":"TestCases/ch13/13.2/S13.2.2_A4_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBGKERlbm90ZSBpdCBQUk9UT19WQUwpLgogKiBJZiBQUk9UT19WQUwgaXMgYW4gb2JqZWN0LCBzZXRzIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdCBqdXN0IGNyZWF0ZWQKICogdG8gdGhlIFBST1RPX1ZBTAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BNF9UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiX19GQUNUT1JZID0gZnVuY3Rpb24oKSIKICovCgpfX0NVQkU9ImN1YmUiOwoKX19GQUNUT1JZID0gZnVuY3Rpb24oKXt9OwoKX19GQUNUT1JZLnByb3RvdHlwZT17IHNoYXBlOl9fQ1VCRSwgcHJpbnRTaGFwZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYXBlO30gfTsKCl9fZGV2aWNlID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19kZXZpY2UucHJpbnRTaGFwZSA9PT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2RldmljZS5wcmludFNoYXBlICE9PSB1bmRlZmluZWQuIEFjdHVhbDogX19kZXZpY2UucHJpbnRTaGFwZSA9PT0nK19fZGV2aWNlLnByaW50U2hhcGUpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19kZXZpY2UucHJpbnRTaGFwZSgpICE9PSBfX0NVQkUpIHsKCSRFUlJPUignIzI6IF9fZGV2aWNlLnByaW50U2hhcGUoKSA9PT0gX19DVUJFLiBBY3R1YWw6IF9fZGV2aWNlLnByaW50U2hhcGUoKSA9PT0nK19fZGV2aWNlLnByaW50U2hhcGUoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nGets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL).\nIf PROTO_VAL is an object, sets the [[Prototype]] property of native ECMAScript object just created\nto the PROTO_VAL","description":"Declaring a function with \"__FACTORY = function()\"","path":"TestCases/ch13/13.2/S13.2.2_A4_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdCBqdXN0IGNyZWF0ZWQgYXMgdGhlIHRoaXMgdmFsdWUgYW5kCiAqIHByb3ZpZGluZyB0aGUgYXJndW1lbnQgbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTVfVDEuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggImZ1bmN0aW9uIF9fRkFDVE9SWShhcmcxLCBhcmcyKSIKICovCgpfX1ZPTFVNRT04OwpfX1JFRD0icmVkIjsKX19JRD0xMjM0MjsKX19UT1A9MS4xOwpfX0JPVFRPTT0wLjA7Cl9fTEVGVD0wLjA7CgoKZnVuY3Rpb24gX19GQUNUT1JZKGFyZzEsIGFyZzIpewoJdGhpcy52b2x1bWU9X19WT0xVTUU7Cgljb2xvcj1fX1JFRDsKCXRoaXMuaWQ9YXJnMTsKCXRvcD1hcmcyOwoJdGhpcy5ib3R0b209YXJndW1lbnRzWzNdOwoJbGVmdD1hcmd1bWVudHNbNF07Cn07CgpfX2RldmljZSA9IG5ldyBfX0ZBQ1RPUlkoX19JRCwgX19UT1AsIF9fQk9UVE9NLCBfX0xFRlQpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19kZXZpY2UuY29sb3IgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19kZXZpY2UuY29sb3IgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiBfX2RldmljZS5jb2xvciA9PT0nK19fZGV2aWNlLmNvbG9yKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZGV2aWNlLnZvbHVtZSAhPT0gX19WT0xVTUUpIHsKCSRFUlJPUignIzI6IF9fZGV2aWNlLnZvbHVtZSA9PT0gX19WT0xVTUUuIEFjdHVhbDogX19kZXZpY2Uudm9sdW1lID09PScrX19kZXZpY2Uudm9sdW1lKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKF9fZGV2aWNlLnRvcCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMzOiBfX2RldmljZS50b3AgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiBfX2RldmljZS50b3AgPT09JytfX2RldmljZS50b3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNAppZiAoX19kZXZpY2UuaWQgIT09IF9fSUQpIHsKCSRFUlJPUignIzQ6IF9fZGV2aWNlLmlkID09PSBfX0lELiBBY3R1YWw6IF9fZGV2aWNlLmlkID09PScrX19kZXZpY2UuaWQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNQppZiAoX19kZXZpY2UubGVmdCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyM1OiBfX2RldmljZS5sZWZ0ID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19kZXZpY2UubGVmdCA9PT0nK19fZGV2aWNlLmxlZnQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNgppZiAoX19kZXZpY2UuYm90dG9tICE9PSBfX0JPVFRPTSkgewoJJEVSUk9SKCcjNjogX19kZXZpY2UuYm90dG9tID09PSBfX0JPVFRPTS4gQWN0dWFsOiBfX2RldmljZS5ib3R0b20gPT09JytfX2RldmljZS5ib3R0b20pOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing native ECMAScript object just created as the this value and\nproviding the argument list passed into [[Construct]] as the argument values","description":"Declaring a function with \"function __FACTORY(arg1, arg2)\"","path":"TestCases/ch13/13.2/S13.2.2_A5_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdCBqdXN0IGNyZWF0ZWQgYXMgdGhlIHRoaXMgdmFsdWUgYW5kCiAqIHByb3ZpZGluZyB0aGUgYXJndW1lbnQgbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTVfVDIuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggIl9fRkFDVE9SWSA9IGZ1bmN0aW9uKGFyZzEsIGFyZzIpIgogKi8KCl9fVk9MVU1FPTg7Cl9fUkVEPSJyZWQiOwpfX0lEPTEyMzQyOwpfX1RPUD0xLjE7Cl9fQk9UVE9NPTAuMDsKX19MRUZUPTAuMDsKCgpfX0ZBQ1RPUlkgPSBmdW5jdGlvbihhcmcxLCBhcmcyKXsKCXRoaXMudm9sdW1lPV9fVk9MVU1FOwoJY29sb3I9X19SRUQ7Cgl0aGlzLmlkPWFyZzE7Cgl0b3A9YXJnMjsKCXRoaXMuYm90dG9tPWFyZ3VtZW50c1szXTsKCWxlZnQ9YXJndW1lbnRzWzRdOwp9OwoKX19kZXZpY2UgPSBuZXcgX19GQUNUT1JZKF9fSUQsIF9fVE9QLCBfX0JPVFRPTSwgX19MRUZUKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZGV2aWNlLmNvbG9yICE9PSB1bmRlZmluZWQpIHsKCSRFUlJPUignIzE6IF9fZGV2aWNlLmNvbG9yID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19kZXZpY2UuY29sb3IgPT09JytfX2RldmljZS5jb2xvcik7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2RldmljZS52b2x1bWUgIT09IF9fVk9MVU1FKSB7CgkkRVJST1IoJyMyOiBfX2RldmljZS52b2x1bWUgPT09IF9fVk9MVU1FLiBBY3R1YWw6IF9fZGV2aWNlLnZvbHVtZSA9PT0nK19fZGV2aWNlLnZvbHVtZSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmIChfX2RldmljZS50b3AgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMzogX19kZXZpY2UudG9wID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19kZXZpY2UudG9wID09PScrX19kZXZpY2UudG9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzQKaWYgKF9fZGV2aWNlLmlkICE9PSBfX0lEKSB7CgkkRVJST1IoJyM0OiBfX2RldmljZS5pZCA9PT0gX19JRC4gQWN0dWFsOiBfX2RldmljZS5pZCA9PT0nK19fZGV2aWNlLmlkKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzUKaWYgKF9fZGV2aWNlLmxlZnQgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjNTogX19kZXZpY2UubGVmdCA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fZGV2aWNlLmxlZnQgPT09JytfX2RldmljZS5sZWZ0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzYKaWYgKF9fZGV2aWNlLmJvdHRvbSAhPT0gX19CT1RUT00pIHsKCSRFUlJPUignIzY6IF9fZGV2aWNlLmJvdHRvbSA9PT0gX19CT1RUT00uIEFjdHVhbDogX19kZXZpY2UuYm90dG9tID09PScrX19kZXZpY2UuYm90dG9tKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing native ECMAScript object just created as the this value and\nproviding the argument list passed into [[Construct]] as the argument values","description":"Declaring a function with \"__FACTORY = function(arg1, arg2)\"","path":"TestCases/ch13/13.2/S13.2.2_A5_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBub3QgT2JqZWN0IHRoZW4gcmV0dXJuIHBhc3NlZCBhcyB0aGlzIGludG8gW1tDYWxsXV0gb2JqZWN0CiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0E2X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJfX2Z1bmMgPSBmdW5jdGlvbihhcmcpIgogKi8KCl9fRk9PPSJmb29WYWx1ZSI7Cl9fQkFSPSJiYXJWYWx1ZSI7CgpfX2Z1bmMgPSBmdW5jdGlvbihhcmcpewoJdGhpcy5mb289YXJnOwogICAgcmV0dXJuIDA7Cgl0aGlzLmJhcj1hcmd1bWVudHNbMV07Cn07CgpfX29iaiA9IG5ldyBfX2Z1bmMoX19GT08sIF9fQkFSKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fb2JqLmZvbyE9PV9fRk9PKSB7CgkkRVJST1IoJyMxOiBfX29iai5mb28gPT09IF9fRk9PLiBBY3R1YWw6IF9fb2JqLmZvbz09PScrX19vYmouZm9vKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLmJhciE9PXVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMjogX19vYmouYmFyID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19vYmouYmFyPT09JytfX29iai5iYXIpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument\nlist passed into [[Construct]] as the argument values.\nIf Type( [[Call]] returned) is not Object then return passed as this into [[Call]] object","description":"Declaring a function with \"__func = function(arg)\"","path":"TestCases/ch13/13.2/S13.2.2_A6_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBub3QgT2JqZWN0IHRoZW4gcmV0dXJuIHBhc3NlZCBhcyB0aGlzIGludG8gW1tDYWxsXV0gb2JqZWN0CiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0E2X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMgKGFyZykiCiAqLwoKdmFyIF9fRk9PPSJmb29WYWx1ZSI7CnZhciBfX0JBUj0iYmFyVmFsdWUiOwoKZnVuY3Rpb24gX19mdW5jIChhcmcpewoJdGhpcy5mb289YXJnOwogICAgcmV0dXJuIHRydWU7Cgl0aGlzLmJhcj1hcmd1bWVudHNbMV07Cn07Cgp2YXIgX19vYmogPSBuZXcgX19mdW5jKF9fRk9PLCBfX0JBUik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX29iai5mb28hPT1fX0ZPTykgewoJJEVSUk9SKCcjMTogX19vYmouZm9vID09PSBfX0ZPTy4gQWN0dWFsOiBfX29iai5mb289PT0nK19fb2JqLmZvbyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX29iai5iYXIhPT11bmRlZmluZWQpIHsKCSRFUlJPUignIzI6IF9fb2JqLmJhciA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fb2JqLmJhcj09PScrX19vYmouYmFyKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument\nlist passed into [[Construct]] as the argument values.\nIf Type( [[Call]] returned) is not Object then return passed as this into [[Call]] object","description":"Declaring a function with \"function __func (arg)\"","path":"TestCases/ch13/13.2/S13.2.2_A6_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBPYmplY3QgdGhlbiByZXR1cm4gdGhpcyBqdXN0IGFzIG9idGFpbmVkIG9iamVjdAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BN19UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiYXMgX19mdW5jID0gZnVuY3Rpb24oYXJnKSIKICovCgp2YXIgX19GUlNUPSJvbmUiOwp2YXIgX19TQ05EPSJ0d28iOwoKZnVuY3Rpb24gX19mdW5jIChhcmcxLCBhcmcyKXsKCXRoaXMuZmlyc3Q9YXJnMTsKCXZhciBfX29iaj17c2Vjb25kOmFyZzJ9OwogICAgcmV0dXJuIF9fb2JqOwoJCn07Cgp2YXIgX19vYmpfXyA9IG5ldyBfX2Z1bmMoX19GUlNULCBfX1NDTkQpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19vYmpfXy5maXJzdCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX29ial9fLmZpcnN0ID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19vYmpfXy5maXJzdD09PScrX19vYmpfXy5maXJzdCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX29ial9fLnNlY29uZCAhPT0gX19TQ05EKSB7CgkkRVJST1IoJyMyOiBfX29ial9fLnNlY29uZCA9PT0gX19TQ05ELiBBY3R1YWw6IF9fb2JqX18uc2Vjb25kID09PScrX19vYmpfXy5zZWNvbmQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument\nlist passed into [[Construct]] as the argument values.\nIf Type( [[Call]] returned) is an Object then return this just as obtained object","description":"Declaring a function with \"as __func = function(arg)\"","path":"TestCases/ch13/13.2/S13.2.2_A7_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBPYmplY3QgdGhlbiByZXR1cm4gdGhpcyBqdXN0IGFzIG9idGFpbmVkIG9iamVjdAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BN19UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgImZ1bmN0aW9uIGFzIGZ1bmN0aW9uIF9fZnVuYyAoYXJnKSIKICovCgpfX0ZSU1Q9Im9uZSI7Cl9fU0NORD0idHdvIjsKCl9fZnVuYyA9IGZ1bmN0aW9uKGFyZzEsIGFyZzIpewoJdGhpcy5maXJzdD1hcmcxOwoJdmFyIF9fb2JqPXtzZWNvbmQ6YXJnMn07CiAgICByZXR1cm4gX19vYmo7CgkKfTsKCl9fb2JqX18gPSBuZXcgX19mdW5jKF9fRlJTVCwgX19TQ05EKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fb2JqX18uZmlyc3QgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19vYmpfXy5maXJzdCA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fb2JqX18uZmlyc3Q9PT0nK19fb2JqX18uZmlyc3QpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19vYmpfXy5zZWNvbmQgIT09IF9fU0NORCkgewoJJEVSUk9SKCcjMjogX19vYmpfXy5zZWNvbmQgPT09IF9fU0NORC4gQWN0dWFsOiBfX29ial9fLnNlY29uZCA9PT0nK19fb2JqX18uc2Vjb25kKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument\nlist passed into [[Construct]] as the argument values.\nIf Type( [[Call]] returned) is an Object then return this just as obtained object","description":"Declaring a \"function as function __func (arg)\"","path":"TestCases/ch13/13.2/S13.2.2_A7_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBGdW5jdGlvbiB0aGVuIHJldHVybiB0aGlzIGp1c3QgYXMgb2J0YWluZWQgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQThfVDEuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGNvbnRhaW5zICJyZXR1cm4iIGZvbGxvd2VkIGJ5IGRlY2xhcmF0aW9uIG9mIGFub3RoZXIgZnVuY3Rpb24KICovCgp2YXIgX19GUlNUPSJvbmUiOwp2YXIgX19TQ05EPSJ0d28iOwoKdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKGFyZzEsIGFyZzIpewoJdGhpcy5maXJzdD1hcmcxOwoJCglfX2d1bmMucHJvcD1hcmcyOwogICAgcmV0dXJuIF9fZ3VuYzsKICAgIC8vIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCiAgICBmdW5jdGlvbiBfX2d1bmMoYXJnKXtyZXR1cm4gKythcmd9OwoJCn07Cgp2YXIgX19pbnN0YW5jZSA9IG5ldyBfX2Z1bmMoX19GUlNULCBfX1NDTkQpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19pbnN0YW5jZS5maXJzdCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2luc3RhbmNlLmZpcnN0ID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19pbnN0YW5jZS5maXJzdCA9PT0nK19faW5zdGFuY2UuZmlyc3QpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19pbnN0YW5jZS5wcm9wIT09X19TQ05EKSB7CgkkRVJST1IoJyMyOiBfX2luc3RhbmNlLnByb3AgPT09IF9fU0NORC4gQWN0dWFsOiBfX2luc3RhbmNlLnByb3AgPT09JytfX2luc3RhbmNlLnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19pbnN0YW5jZSgxKSE9PSAyKSB7CgkkRVJST1IoJyMyOiBfX2luc3RhbmNlKDEpPT09IDIuIEFjdHVhbDogX19pbnN0YW5jZSgxKSA9PT0nK19faW5zdGFuY2UoMSkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCg==","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument\nlist passed into [[Construct]] as the argument values.\nIf Type( [[Call]] returned) is an Function then return this just as obtained function","description":"Creating a function whose prototype contains \"return\" followed by declaration of another function","path":"TestCases/ch13/13.2/S13.2.2_A8_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBGdW5jdGlvbiB0aGVuIHJldHVybiB0aGlzIGp1c3QgYXMgb2J0YWluZWQgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQThfVDIuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGNvbnRhaW5zIGRlY2xhcmF0aW9uIG9mIGFub3RoZXIgZnVuY3Rpb24gZGVjbGFyZWQgYXMgYSB2YXJpYWJsZQogKi8KCnZhciBfX0ZSU1Q9Im9uZSI7CnZhciBfX1NDTkQ9InR3byI7Cgp2YXIgX19mdW5jID0gZnVuY3Rpb24oYXJnMSwgYXJnMil7Cgl0aGlzLmZpcnN0PWFyZzE7Cgl2YXIgX19ndW5jID0gZnVuY3Rpb24oYXJnKXtyZXR1cm4gYXJnKz0iQkEifTsKCV9fZ3VuYy5wcm9wPWFyZzI7CiAgICByZXR1cm4gX19ndW5jOwoJCn07Cgp2YXIgX19pbnN0YW5jZSA9IG5ldyBfX2Z1bmMoX19GUlNULCBfX1NDTkQpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19pbnN0YW5jZS5maXJzdCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2luc3RhbmNlLmZpcnN0ID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19pbnN0YW5jZS5maXJzdCA9PT0nK19faW5zdGFuY2UuZmlyc3QpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19pbnN0YW5jZS5wcm9wIT09X19TQ05EKSB7CgkkRVJST1IoJyMyOiBfX2luc3RhbmNlLnByb3AgPT09IF9fU0NORC4gQWN0dWFsOiBfX2luc3RhbmNlLnByb3AgPT09JytfX2luc3RhbmNlLnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19pbnN0YW5jZSgiU0FNIikhPT0gIlNBTUJBIikgewoJJEVSUk9SKCcjMjogX19pbnN0YW5jZSgiU0FNIikgPT09ICJTQU1CQSIuIEFjdHVhbDogX19pbnN0YW5jZSgiU0FNIikgPT09JytfX2luc3RhbmNlKCJTQU0iKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoK","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument\nlist passed into [[Construct]] as the argument values.\nIf Type( [[Call]] returned) is an Function then return this just as obtained function","description":"Creating a function whose prototype contains declaration of another function declared as a variable","path":"TestCases/ch13/13.2/S13.2.2_A8_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBGdW5jdGlvbiB0aGVuIHJldHVybiB0aGlzIGp1c3QgYXMgb2J0YWluZWQgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQThfVDMuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGNvbnRhaW5zIGRlY2xhcmF0aW9uIG9mIGFub3RoZXIgZnVuY3Rpb24gZGVmaW5lZCBieSB1c2luZyBGdW5jdGlvbi5jYWxsIG1ldGhvZAogKi8KCnZhciBfX0ZSU1Q9Im9uZSI7CnZhciBfX1NDTkQ9InR3byI7Cgp2YXIgX19mdW5jID0gZnVuY3Rpb24oYXJnMSwgYXJnMil7Cgl0aGlzLmZpcnN0PWFyZzE7Cgl2YXIgX19ndW5jID0gRnVuY3Rpb24uY2FsbCh0aGlzLCJhcmciLCJyZXR1cm4gKythcmc7Iik7CglfX2d1bmMucHJvcD1hcmcyOwogICAgcmV0dXJuIF9fZ3VuYzsKCQp9OwoKdmFyIF9faW5zdGFuY2UgPSBuZXcgX19mdW5jKF9fRlJTVCwgX19TQ05EKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9faW5zdGFuY2UuZmlyc3QgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19pbnN0YW5jZS5maXJzdCA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9faW5zdGFuY2UuZmlyc3QgPT09JytfX2luc3RhbmNlLmZpcnN0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9faW5zdGFuY2UucHJvcCE9PV9fU0NORCkgewoJJEVSUk9SKCcjMjogX19pbnN0YW5jZS5wcm9wID09PSBfX1NDTkQuIEFjdHVhbDogX19pbnN0YW5jZS5wcm9wID09PScrX19pbnN0YW5jZS5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKF9faW5zdGFuY2UoMSkhPT0gMikgewoJJEVSUk9SKCcjMjogX19pbnN0YW5jZSgxKT09PSAyLiBBY3R1YWw6IF9faW5zdGFuY2UoMSkgPT09JytfX2luc3RhbmNlKDEpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument\nlist passed into [[Construct]] as the argument values.\nIf Type( [[Call]] returned) is an Function then return this just as obtained function","description":"Creating a function whose prototype contains declaration of another function defined by using Function.call method","path":"TestCases/ch13/13.2/S13.2.2_A8_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBpbmFkbWlzc2libGUgYXMgbG9uZyBhcyB0aGlzLmFueV9GdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIGl0IGlzIGRlY2xhcmVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0E5LmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvcgogKi8KCmZ1bmN0aW9uIEZBQ1RPUlkoKXsKICAgdGhpcy5pZCA9IDA7CiAgIAogICB0aGlzLmlkID0gdGhpcy5mdW5jKCk7CiAgIAogICB0aGlzLmZ1bmMgPSBmdW5jdGlvbiAoKXsKICAgICAgcmV0dXJuIDU7CiAgIH0KICAKfQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCnRyeSB7Cgl2YXIgb2JqID0gbmV3IEZBQ1RPUlkoKTsKCSRFUlJPUignIzE6IHZhciBvYmogPSBuZXcgRkFDVE9SWSgpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7DQp9IGNhdGNoIChlKSB7DQogICAgaWYgKGUgaW5zdGFuY2VvZiBUZXN0MjYyRXJyb3IpIHRocm93IGU7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Calling a function as a constructor is inadmissible as long as this.any_Function is called before it is declared","description":"Calling a function as a constructor","path":"TestCases/ch13/13.2/S13.2.2_A9.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuM19BMS5qcwogKiBAZGVzY3JpcHRpb24gY2hlY2sgdGhhdCBhbGwgcG9pc29uaW5nIHVzZSB0aGUgW1tUaHJvd1R5cGVFcnJvcl1dCiAqIGZ1bmN0aW9uIG9iamVjdC4KICogQG9ubHlTdHJpY3QKICovCgoidXNlIHN0cmljdCI7CnZhciBwb2lzb24gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGZ1bmN0aW9uKCkge30sICdjYWxsZXInKS5nZXQ7CgppZiAodHlwZW9mIHBvaXNvbiAhPT0gJ2Z1bmN0aW9uJykgewogICRFUlJPUigiIzE6IEEgc3RyaWN0IGZ1bmN0aW9uJ3MgLmNhbGxlciBzaG91bGQgYmUgcG9pc29uZWQgd2l0aCBhIGZ1bmN0aW9uIik7Cn0KdmFyIHRocmV3ID0gbnVsbDsKdHJ5IHsKICBwb2lzb24oKTsKfSBjYXRjaCAoZXJyKSB7CiAgdGhyZXcgPSBlcnI7Cn0KaWYgKCF0aHJldyB8fCAhKHRocmV3IGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogICRFUlJPUigiIzI6IFBvaXNvbmVkIHByb3BlcnR5IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IiKTsKfQoKZnVuY3Rpb24gY2hlY2tQb2lzb24ob2JqLCBuYW1lKSB7CiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgbmFtZSk7CiAgaWYgKGRlc2MuZW51bWVyYWJsZSkgewogICAgJEVSUk9SKCIjMzogUG9pc29uZWQgIiArIG5hbWUgKyAiIHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSIpOwogIH0KICBpZiAoZGVzYy5jb25maWd1cmFibGUpIHsKICAgICRFUlJPUigiIzQ6IFBvaXNvbmVkICIgKyBuYW1lICsgIiBzaG91bGQgbm90IGJlIGNvbmZpZ3VyYWJsZSIpOwogIH0KICBpZiAocG9pc29uICE9PSBkZXNjLmdldCkgewogICAgJEVSUk9SKCIjNTogIiArIG5hbWUgKyAiJ3MgZ2V0dGVyIG5vdCBwb2lzb25lZCB3aXRoIHNhbWUgcG9pc29uIik7CiAgfQogIGlmIChwb2lzb24gIT09IGRlc2Muc2V0KSB7CiAgICAkRVJST1IoIiM2OiAiICsgbmFtZSArICIncyBzZXR0ZXIgbm90IHBvaXNvbmVkIHdpdGggc2FtZSBwb2lzb24iKTsKICB9Cn0KCmNoZWNrUG9pc29uKGZ1bmN0aW9uKCkge30sICdjYWxsZXInKTsKY2hlY2tQb2lzb24oZnVuY3Rpb24oKSB7fSwgJ2FyZ3VtZW50cycpOwpjaGVja1BvaXNvbigoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0pKCksICdjYWxsZXInKTsKY2hlY2tQb2lzb24oKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KSgpLCAnY2FsbGVlJyk7CmNoZWNrUG9pc29uKChmdW5jdGlvbigpIHt9KS5iaW5kKG51bGwpLCAnY2FsbGVyJyk7CmNoZWNrUG9pc29uKChmdW5jdGlvbigpIHt9KS5iaW5kKG51bGwpLCAnYXJndW1lbnRzJyk7Cgo=","commentary":"","description":"check that all poisoning use the [[ThrowTypeError]]\nfunction object.","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2.3_A1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBBICJwcm90b3R5cGUiIHByb3BlcnR5IGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBmb3IgZXZlcnkgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0ExX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBVc2luZyAiZnVuY3Rpb24gX19mdW5jKCl7fSIgYXMgYSBGdW5jdGlvbkRlY2xhcmF0aW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYy5wcm90b3R5cGUgPT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19mdW5jLnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"A \"prototype\" property is automatically created for every function","description":"Using \"function __func(){}\" as a FunctionDeclaration","path":"TestCases/ch13/13.2/S13.2_A1_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBBICJwcm90b3R5cGUiIHByb3BlcnR5IGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBmb3IgZXZlcnkgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0ExX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBVc2luZyAidmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCl7fSIgYXMgYSBGdW5jdGlvbkRlY2xhcmF0aW9uCiAqLwoKdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCl7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYy5wcm90b3R5cGUgPT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19mdW5jLnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"A \"prototype\" property is automatically created for every function","description":"Using \"var __func = function(){}\" as a FunctionDeclaration","path":"TestCases/ch13/13.2/S13.2_A1_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBOZXN0ZWQgZnVuY3Rpb24gYXJlIGFkbWl0dGVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMl9BMl9UMS5qcwogKiBAZGVzY3JpcHRpb24gTmVzdGluZyBsZXZlbCBpcyB0d28KICovCgp2YXIgX19KRURJPSJqZWRpIjsKCmZ1bmN0aW9uIF9fRlVOQygpewogICAgZnVuY3Rpb24gX19HVU5DKCl7CiAgICAgICAgcmV0dXJuIGFyZ3VtZW50c1swXTsKICAgIH07CiAgICAKICAgIHJldHVybiBfX0dVTkM7Cn07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX0ZVTkMoKShfX0pFREkpICE9PSBfX0pFREkpIHsKCSRFUlJPUignIzE6IF9fRlVOQygpKF9fSkVESSkgPT09IF9fSkVESS4gQWN0dWFsOiBfX0ZVTkMoKShfX0pFREkpID09PScrX19GVU5DKCkoX19KRURJKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Nested function are admitted","description":"Nesting level is two","path":"TestCases/ch13/13.2/S13.2_A2_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBOZXN0ZWQgZnVuY3Rpb24gYXJlIGFkbWl0dGVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMl9BMl9UMi5qcwogKiBAZGVzY3JpcHRpb24gTmVzdGluZyBsZXZlbCBpcyB0aHJlZQogKi8KCnZhciBfX1JPQk9UPSJDM1BPIjsKCmZ1bmN0aW9uIF9fRlVOQygpewogICAgZnVuY3Rpb24gX19HVU5DKCl7CiAgICAgICAgcmV0dXJuIGFyZ3VtZW50c1swXTsKICAgIH07CiAgICBmdW5jdGlvbiBfX0hVTkMoKXsKICAgICAgICByZXR1cm4gX19HVU5DOwogICAgfTsKICAgIHJldHVybiBfX0hVTkM7Cn07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX0ZVTkMoKSgpKF9fUk9CT1QpICE9PSBfX1JPQk9UKSB7CgkkRVJST1IoJyMxOiBfX0ZVTkMoKSgpKF9fUk9CT1QpID09PSBfX1JPQk9ULiBBY3R1YWw6IF9fRlVOQygpKCkoX19ST0JPVCkgPT09JytfX0ZVTkMoKSgpKF9fUk9CT1QpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Nested function are admitted","description":"Nesting level is three","path":"TestCases/ch13/13.2/S13.2_A2_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIEZ1bmN0aW9uIG9iamVjdChGKSBpcyBjb25zdHJ1Y3RlZCB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEYgaXMgc2V0IHRvIHRoZSBudW1iZXIgb2YgZm9ybWFsIHByb3BlcnRpZXMgc3BlY2lmaWVkIGluIEZvcm1hbFBhcmFtZXRlckxpc3QKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0EzLmpzCiAqIEBkZXNjcmlwdGlvbiBDcmVhdGluZyBmdW5jdGlvbnMgd2l0aCB2YXJpb3VzIEZvcm1hbFBhcmFtZXRlckxpc3QgYW5kIGNoZWNraW5nIHRoZWlyIGxlbmd0aHMKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jLmxlbmd0aCAhPT0gMCkgewoJJEVSUk9SKCcjMTogX19mdW5jLmxlbmd0aCA9PT0gMC4gQWN0dWFsOiBfX2Z1bmMubGVuZ3RoID09PScrX19mdW5jLmxlbmd0aCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2d1bmMoYSxiLGMpe307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2d1bmMubGVuZ3RoICE9PSAzKSB7CgkkRVJST1IoJyMyOiBfX2d1bmMubGVuZ3RoID09PSAzLiBBY3R1YWw6IF9fZ3VuYy5sZW5ndGggPT09JytfX2d1bmMubGVuZ3RoKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","commentary":"When Function object(F) is constructed the length property of F is set to the number of formal properties specified in FormalParameterList","description":"Creating functions with various FormalParameterList and checking their lengths","path":"TestCases/ch13/13.2/S13.2_A3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIEZ1bmN0aW9uIG9iamVjdChGKSBpcyBjb25zdHJ1Y3RlZCB0aGUgZm9sbG93aW5nIHN0ZXBzIGZyb20gOSB0byAxMSB0YWtlIHBsYWNlCiAqIDkuQ3JlYXRlIGEgbmV3IG9iamVjdCBhcyB3b3VsZCBiZSBjb25zdHJ1Y3RlZCBieSB0aGUgZXhwcmVzc2lvbiBuZXcgT2JqZWN0KCkuCiAqIDEwLiBTZXQgdGhlIGNvbnN0cnVjdG9yIHByb3BlcnR5IG9mIFJlc3VsdCg5KSB0byBGLiBUaGlzIHByb3BlcnR5IGlzIGdpdmVuIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9LgogKiAxMS4gU2V0IHRoZSAicHJvdG90eXBlIiBwcm9wZXJ0eSBvZiBGIHRvIFJlc3VsdCg5KS4KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0E0X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGVja2luZyBwcm90b3R5cGUsIHByb3RvdHlwZS5jb25zdHJ1Y3RvciBwcm9wZXJ0aWVzIGFuZCB7RG9udEVudW19IHByb3BlcnR5IG9mIGEgY29uc3RydWN0b3IuCiAqIFVzaW5nICJmdW5jdGlvbiBfX2Z1bmMoKXt9IiBhcyBhIEZ1bmN0aW9uRGVjbGFyYXRpb24KICovCgpmdW5jdGlvbiBfX2Z1bmMoKXt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZnVuYy5wcm90b3R5cGUgIT09ICdvYmplY3QnKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19mdW5jLnByb3RvdHlwZSA9PT0gXCdvYmplY3RcJy4gQWN0dWFsOiB0eXBlb2YgX19ndW5jLnByb3RvdHlwZSA9PT0nK3R5cGVvZiBfX2d1bmMucHJvdG90eXBlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYy5wcm90b3R5cGUuY29uc3RydWN0b3IgIT09IF9fZnVuYykgewoJJEVSUk9SKCcjMjogX19mdW5jLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9PT0gX19mdW5jLiBBY3R1YWw6IF9fZ3VuYy5wcm90b3R5cGUuY29uc3RydWN0b3IgPT09JytfX2d1bmMucHJvdG90eXBlLmNvbnN0cnVjdG9yKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBfX2NvbnN0cnVjdG9yX3dhc19fZW51bWVkOwoKZm9yIChfX3Byb3AgaW4gX19mdW5jLnByb3RvdHlwZSl7CiAgICBpZiAoX19wcm9wID0gJ2NvbnN0cnVjdG9yJykKICAgICAgICBfX2NvbnN0cnVjdG9yX3dhc19fZW51bWVkID0gdHJ1ZTsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCkgewoJJEVSUk9SKCcjMzogX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCA9PT0gZmFsc2UuIEFjdHVhbDogX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCA9PT0nK19fY29uc3RydWN0b3Jfd2FzX19lbnVtZWQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoKCgo=","commentary":"When Function object(F) is constructed the following steps from 9 to 11 take place\n9.Create a new object as would be constructed by the expression new Object().\n10. Set the constructor property of Result(9) to F. This property is given attributes { DontEnum }.\n11. Set the \"prototype\" property of F to Result(9).","description":"Checking prototype, prototype.constructor properties and {DontEnum} property of a constructor.\nUsing \"function __func(){}\" as a FunctionDeclaration","path":"TestCases/ch13/13.2/S13.2_A4_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIEZ1bmN0aW9uIG9iamVjdChGKSBpcyBjb25zdHJ1Y3RlZCB0aGUgZm9sbG93aW5nIHN0ZXBzIGZyb20gOSB0byAxMSB0YWtlIHBsYWNlCiAqIDkuQ3JlYXRlIGEgbmV3IG9iamVjdCBhcyB3b3VsZCBiZSBjb25zdHJ1Y3RlZCBieSB0aGUgZXhwcmVzc2lvbiBuZXcgT2JqZWN0KCkuCiAqIDEwLiBTZXQgdGhlIGNvbnN0cnVjdG9yIHByb3BlcnR5IG9mIFJlc3VsdCg5KSB0byBGLiBUaGlzIHByb3BlcnR5IGlzIGdpdmVuIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9LgogKiAxMS4gU2V0IHRoZSAicHJvdG90eXBlIiBwcm9wZXJ0eSBvZiBGIHRvIFJlc3VsdCg5KS4KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0E0X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGVja2luZyBwcm90b3R5cGUsIHByb3RvdHlwZS5jb25zdHJ1Y3RvciBwcm9wZXJ0aWVzIGFuZCB7RG9udEVudW19IHByb3BlcnR5IG9mIGEgY29uc3RydWN0b3IuCiAqIFVzaW5nICJ2YXIgX19ndW5jID0gZnVuY3Rpb24oKXt9IiBhcyBhIEZ1bmN0aW9uRGVjbGFyYXRpb24KICovCgp2YXIgX19ndW5jID0gZnVuY3Rpb24oKXt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZ3VuYy5wcm90b3R5cGUgIT09ICdvYmplY3QnKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19ndW5jLnByb3RvdHlwZSA9PT0gXCdvYmplY3RcJy4gQWN0dWFsOiB0eXBlb2YgX19ndW5jLnByb3RvdHlwZSA9PT0nK3R5cGVvZiBfX2d1bmMucHJvdG90eXBlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZ3VuYy5wcm90b3R5cGUuY29uc3RydWN0b3IgIT09IF9fZ3VuYykgewoJJEVSUk9SKCcjMjogX19ndW5jLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9PT0gX19ndW5jLiBBY3R1YWw6IF9fZ3VuYy5wcm90b3R5cGUuY29uc3RydWN0b3IgPT09JytfX2d1bmMucHJvdG90eXBlLmNvbnN0cnVjdG9yKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBfX2NvbnN0cnVjdG9yX3dhc19fZW51bWVkOwoKZm9yIChfX3Byb3AgaW4gX19ndW5jLnByb3RvdHlwZSl7CiAgICBpZiAoX19wcm9wID0gJ2NvbnN0cnVjdG9yJykKICAgICAgICBfX2NvbnN0cnVjdG9yX3dhc19fZW51bWVkID0gdHJ1ZTsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCkgewoJJEVSUk9SKCcjMzogX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCA9PT0gZmFsc2UuIEFjdHVhbDogX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCA9PT0nK19fY29uc3RydWN0b3Jfd2FzX19lbnVtZWQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoKCgo=","commentary":"When Function object(F) is constructed the following steps from 9 to 11 take place\n9.Create a new object as would be constructed by the expression new Object().\n10. Set the constructor property of Result(9) to F. This property is given attributes { DontEnum }.\n11. Set the \"prototype\" property of F to Result(9).","description":"Checking prototype, prototype.constructor properties and {DontEnum} property of a constructor.\nUsing \"var __gunc = function(){}\" as a FunctionDeclaration","path":"TestCases/ch13/13.2/S13.2_A4_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIEZ1bmN0aW9uIG9iamVjdChGKSBpcyBjb25zdHJ1Y3RlZAogKiB0aGUgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBGIGlzIHNldCB0byB0aGUgb3JpZ2luYWwgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTUuMy4zLjEKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0E1LmpzCiAqIEBkZXNjcmlwdGlvbiBGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZigpIGlzIHVzZWQKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihfX2Z1bmMpKSkgewoJJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoX19mdW5jKScpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCnZhciBfX2d1bmMgPSBmdW5jdGlvbigpe307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKF9fZ3VuYykpKSB7CgkkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihfX2d1bmMpJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoKCg==","commentary":"When Function object(F) is constructed\nthe [[Prototype]] property of F is set to the original Function prototype object as specified in 15.3.3.1","description":"Function.prototype.isPrototypeOf() is used","path":"TestCases/ch13/13.2/S13.2_A5.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQTZfVDEuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJjYWxsZXIiIHBvaXNvbmluZyBwb2lzb25zCiAqIGdldE93blByb3BlcnR5RGVzY3JpcHRvciB0b28KICogQG9ubHlTdHJpY3QKICovCgoidXNlIHN0cmljdCI7Ck9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZnVuY3Rpb24oKXt9LCAnY2FsbGVyJyk7Cgo=","commentary":"","description":"check if \"caller\" poisoning poisons\ngetOwnPropertyDescriptor too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A6_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQTZfVDIuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJhcmd1bWVudHMiIHBvaXNvbmluZyBwb2lzb25zCiAqIGdldE93blByb3BlcnR5RGVzY3JpcHRvciB0b28KICogQG9ubHlTdHJpY3QKICovCgoidXNlIHN0cmljdCI7Ck9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZnVuY3Rpb24oKXt9LCAnYXJndW1lbnRzJyk7Cgo=","commentary":"","description":"check if \"arguments\" poisoning poisons\ngetOwnPropertyDescriptor too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A6_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQTdfVDEuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJjYWxsZXIiIHBvaXNvbmluZyBwb2lzb25zCiAqIGhhc093blByb3BlcnR5IHRvbwogKiBAb25seVN0cmljdAogKi8KCiJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKCl7fSkuaGFzT3duUHJvcGVydHkoJ2NhbGxlcicpOwoKCg==","commentary":"","description":"check if \"caller\" poisoning poisons\nhasOwnProperty too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A7_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQTdfVDIuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJhcmd1bWVudHMiIHBvaXNvbmluZyBwb2lzb25zCiAqIGhhc093blByb3BlcnR5IHRvbwogKiBAb25seVN0cmljdAogKi8KCiJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKCl7fSkuaGFzT3duUHJvcGVydHkoJ2FyZ3VtZW50cycpOwoKCg==","commentary":"","description":"check if \"arguments\" poisoning poisons\nhasOwnProperty too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A7_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQThfVDEuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJjYWxsZXIiIHBvaXNvbmluZyBwb2lzb25zCiAqICJpbiIgdG9vCiAqIEBvbmx5U3RyaWN0CiAqLwoKInVzZSBzdHJpY3QiOwonY2FsbGVyJyBpbiBmdW5jdGlvbigpIHt9OwoKCg==","commentary":"","description":"check if \"caller\" poisoning poisons\n\"in\" too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A8_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQThfVDIuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJhcmd1bWVudHMiIHBvaXNvbmluZyBwb2lzb25zCiAqICJpbiIgdG9vCiAqIEBvbmx5U3RyaWN0CiAqLwoKInVzZSBzdHJpY3QiOwonYXJndW1lbnRzJyBpbiBmdW5jdGlvbigpIHt9OwoKCg==","commentary":"","description":"check if \"arguments\" poisoning poisons\n\"in\" too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A8_T2.js"}]}} \ No newline at end of file
+{"testsCollection":{"name":"Chapter - ch13","numTests":"230","tests":[{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTEuanMNCiAqIEBkZXNjcmlwdGlvbiAxMy4wIC0gbXVsdGlwbGUgbmFtZXMgaW4gb25lIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGlzIG5vdCBhbGxvd2VkLCB0d28gZnVuY3Rpb24gbmFtZXMNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiZnVuY3Rpb24geCwgeSgpIHt9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"13.0 - multiple names in one function declaration is not allowed, two function names","path":"TestCases/ch13/13.0/13.0-1.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTEwLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gdGhlIGNvZGUgb2YgdGhpcyBGdW5jdGlvbkJvZHkgd2l0aCBhbiBpbm5lciBmdW5jdGlvbiBjb250YWlucyBhIFVzZSBTdHJpY3QgRGlyZWN0aXZlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgZnVuY3Rpb24gXzEzXzBfMTBfZnVuKCkgew0KICAgICAgICAgICAgZnVuY3Rpb24gXzEzXzBfMTBfaW5uZXIoKSB7DQogICAgICAgICAgICAgICAgInVzZSBzdHJpY3QiOw0KICAgICAgICAgICAgICAgIGV2YWwoImV2YWwgPSA0MjsiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIF8xM18wXzEwX2lubmVyKCk7DQogICAgICAgIH07DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBfMTNfMF8xMF9mdW4oKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when the code of this FunctionBody with an inner function contains a Use Strict Directive","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-10-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTExLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gdGhlIGNvZGUgb2YgdGhpcyBGdW5jdGlvbkJvZHkgd2l0aCBhbiBpbm5lciBmdW5jdGlvbiB3aGljaCBpcyBpbiBzdHJpY3QgbW9kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGZ1bmN0aW9uIF8xM18wXzExX2Z1bigpIHsNCiAgICAgICAgICAgICJ1c2Ugc3RyaWN0IjsNCiAgICAgICAgICAgIGZ1bmN0aW9uIF8xM18wXzExX2lubmVyKCkgew0KICAgICAgICAgICAgICAgIGV2YWwoImV2YWwgPSA0MjsiKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIF8xM18wXzExX2lubmVyKCk7DQogICAgICAgIH07DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBfMTNfMF8xMV9mdW4oKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when the code of this FunctionBody with an inner function which is in strict mode","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-11-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTEyLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIG5vdCBldmFsdWF0ZWQgYXMgc3RyaWN0IG1vZGUgY29kZSB3aGVuIGEgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY29udGFpbmVkIGluIHN0cmljdCBtb2RlIGNvZGUgYW5kIHRoZSBmdW5jdGlvbiBjb25zdHJ1Y3RvciBib2R5IGlzIG5vdCBzdHJpY3QNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHZhciBfMTNfMF8xMl9mdW4gPSBuZXcgRnVuY3Rpb24oIiAiLCJldmFsID0gNDI7Iik7DQogICAgICAgIF8xM18wXzEyX2Z1bigpOw0KICAgICAgICByZXR1cm4gdHJ1ZTsNCg0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is not evaluated as strict mode code when a Function constructor is contained in strict mode code and the function constructor body is not strict","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-12-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTEzLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gdGhlIGZ1bmN0aW9uIGJvZHkgb2YgYSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBiZWdpbnMgd2l0aCBhIFN0cmljdCBEaXJlY3RpdmUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICANCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoInZhciBfMTNfMF8xM19mdW4gPSBuZXcgRnVuY3Rpb24oXCIgXCIsIFwiJ3VzZSBzdHJpY3QnOyBldmFsID0gNDI7XCIpOyBfMTNfMF8xM19mdW4oKTsiKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when the function body of a Function constructor begins with a Strict Directive","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-13-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTE0LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gdGhlIGZ1bmN0aW9uIGJvZHkgb2YgYSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBjb250YWlucyBhIFN0cmljdCBEaXJlY3RpdmUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgdmFyIF8xM18wXzE0X2Z1biA9IG5ldyBGdW5jdGlvbigiICIsICIndXNlIHN0cmljdCc7IGV2YWwgPSA0MjsgIik7DQogICAgICAgICAgICBfMTNfMF8xNF9mdW4oKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when the function body of a Function constructor contains a Strict Directive","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-14-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTE1LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gYSBGdW5jdGlvbkRlY2xhcmF0aW9uIGlzIGNvbnRhaW5lZCBpbiBzdHJpY3QgbW9kZSBjb2RlIHdpdGhpbiBldmFsIGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiJ3VzZSBzdHJpY3QnOyBmdW5jdGlvbiBfMTNfMF8xNV9mdW4oKSB7ZXZhbCA9IDQyO307Iik7DQogICAgICAgICAgICBfMTNfMF8xNV9mdW4oKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when a FunctionDeclaration is contained in strict mode code within eval code","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-15-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTE2LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gYSBGdW5jdGlvbkV4cHJlc3Npb24gaXMgY29udGFpbmVkIGluIHN0cmljdCBtb2RlIGNvZGUgd2l0aGluIGV2YWwgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCIndXNlIHN0cmljdCc7IHZhciBfMTNfMF8xNl9mdW4gPSBmdW5jdGlvbiAoKSB7ZXZhbCA9IDQyO307Iik7DQogICAgICAgICAgICBfMTNfMF8xNl9mdW4oKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when a FunctionExpression is contained in strict mode code within eval code","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-16-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTE3LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIG5vdCBldmFsdWF0ZWQgYXMgc3RyaWN0IG1vZGUgY29kZSB3aGVuIGEgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY29udGFpbmVkIGluIHN0cmljdCBtb2RlIGNvZGUgd2l0aGluIGV2YWwgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIGV2YWwoIid1c2Ugc3RyaWN0JzsgdmFyIF8xM18wXzE3X2Z1biA9IG5ldyBGdW5jdGlvbignZXZhbCA9IDQyOycpOyBfMTNfMF8xN19mdW4oKTsiKTsNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is not evaluated as strict mode code when a Function constructor is contained in strict mode code within eval code","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-17-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTIuanMNCiAqIEBkZXNjcmlwdGlvbiAxMy4wIC0gbXVsdGlwbGUgbmFtZXMgaW4gb25lIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGlzIG5vdCBhbGxvd2VkLCB0aHJlZSBmdW5jdGlvbiBuYW1lcw0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiB4LHkseigpe30iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"13.0 - multiple names in one function declaration is not allowed, three function names","path":"TestCases/ch13/13.0/13.0-2.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTMuanMNCiAqIEBkZXNjcmlwdGlvbiAxMy4wIC0gcHJvcGVydHkgbmFtZXMgaW4gZnVuY3Rpb24gZGVmaW5pdGlvbiBpcyBub3QgYWxsb3dlZCwgYWRkIGEgbmV3IHByb3BlcnR5IGludG8gb2JqZWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiZnVuY3Rpb24gb2JqLnR0KCkge307Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"13.0 - property names in function definition is not allowed, add a new property into object","path":"TestCases/ch13/13.0/13.0-3.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTQuanMNCiAqIEBkZXNjcmlwdGlvbiAxMy4wIC0gbXVsdGlwbGUgbmFtZXMgaW4gb25lIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGlzIG5vdCBhbGxvd2VkLCBhZGQgYSBuZXcgcHJvcGVydHkgaW50byBhIHByb3BlcnR5IHdoaWNoIGlzIGEgb2JqZWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIG9iaiA9IHt9Ow0KICAgICAgICBvYmoudHQgPSB7IGxlbjogMTAgfTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoImZ1bmN0aW9uIG9iai50dC5zcygpIHt9OyIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"13.0 - multiple names in one function declaration is not allowed, add a new property into a property which is a object","path":"TestCases/ch13/13.0/13.0-4.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTctcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdCBNb2RlIC0gU291cmNlRWxlbWVudHMgaXMgZXZhbHVhdGVkIGFzIHN0cmljdCBtb2RlIGNvZGUgd2hlbiB0aGUgY29kZSBvZiB0aGlzIEZ1bmN0aW9uRGVjbGFyYXRpb24gaXMgY29udGFpbmVkIGluIG5vbi1zdHJpY3QgbW9kZSBidXQgdGhlIGNhbGwgdG8gZXZhbCBpcyBhIGRpcmVjdCBjYWxsIGluIHN0cmljdCBtb2RlIGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiJ3VzZSBzdHJpY3QnOyBmdW5jdGlvbiBfMTNfMF83X2Z1bigpIHtldmFsID0gNDI7fTsiKTsNCiAgICAgICAgICAgIF8xM18wXzdfZnVuKCk7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when the code of this FunctionDeclaration is contained in non-strict mode but the call to eval is a direct call in strict mode code","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-7-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTgtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdCBNb2RlIC0gU291cmNlRWxlbWVudHMgaXMgZXZhbHVhdGVkIGFzIHN0cmljdCBtb2RlIGNvZGUgd2hlbiB0aGUgY29kZSBvZiB0aGlzIEZ1bmN0aW9uRXhwcmVzc2lvbiBpcyBjb250YWluZWQgaW4gbm9uLXN0cmljdCBtb2RlIGJ1dCB0aGUgY2FsbCB0byBldmFsIGlzIGEgZGlyZWN0IGNhbGwgaW4gc3RyaWN0IG1vZGUgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoInZhciBfMTNfMF84X2Z1biA9IGZ1bmN0aW9uICgpIHtldmFsID0gNDI7fTsiKTsNCiAgICAgICAgICAgIF8xM18wXzhfZnVuKCk7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when the code of this FunctionExpression is contained in non-strict mode but the call to eval is a direct call in strict mode code","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-8-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzOyANCiAqIFRoZSBwcm9kdWN0aW9uIEZ1bmN0aW9uQm9keSA6IFNvdXJjZUVsZW1lbnRzb3B0IGlzIGV2YWx1YXRlZCBhcyBmb2xsb3dzOg0KICoNCiAqIEBwYXRoIGNoMTMvMTMuMC8xMy4wLTktcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdCBNb2RlIC0gU291cmNlRWxlbWVudHMgaXMgZXZhbHVhdGVkIGFzIHN0cmljdCBtb2RlIGNvZGUgd2hlbiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gdGhhdCBpcyBjb250YWluZWQgaW4gc3RyaWN0IG1vZGUgY29kZSBoYXMgYW4gaW5uZXIgZnVuY3Rpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHZhciBfMTNfMF85X2Z1biA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIF8xM18wXzlfaW5uZXIoKSB7IGV2YWwoImV2YWwgPSA0MjsiKTsgfQ0KICAgICAgICAgICAgXzEzXzBfOV9pbm5lcigpOw0KICAgICAgICB9Ow0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgXzEzXzBfOV9mdW4oKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13;\nThe production FunctionBody : SourceElementsopt is evaluated as follows:","description":"Strict Mode - SourceElements is evaluated as strict mode code when a FunctionDeclaration that is contained in strict mode code has an inner function","onlyStrict":"","path":"TestCases/ch13/13.0/13.0-9-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMC8xM180LTE3Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gYSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBjb250YWluZWQgaW4gc3RyaWN0IG1vZGUgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBOb3RFYXJseUVycm9yDQogKi8NCg0KInVzZSBzdHJpY3QiOw0KdmFyIF8xM180XzE3X2Z1biA9IG5ldyBGdW5jdGlvbignZXZhbCA9IDQyOycpOw0KdGhyb3cgTm90RWFybHlFcnJvcjsNCg==","commentary":"","description":"Strict Mode - SourceElements is evaluated as strict mode code when a Function constructor is contained in strict mode code","negative":"NotEarlyError","onlyStrict":"","path":"TestCases/ch13/13.0/13_4-17gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMC8xM180LTVncy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdCBNb2RlIC0gU291cmNlRWxlbWVudHMgaXMgZXZhbHVhdGVkIGFzIHN0cmljdCBtb2RlIGNvZGUgd2hlbiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gaXMgY29udGFpbmVkIGluIHN0cmljdCBtb2RlIGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKiBAbmVnYXRpdmUgXigoPyFOb3RFYXJseUVycm9yKS4pKiQNCiAqLw0KDQoidXNlIHN0cmljdCI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KZnVuY3Rpb24gXzEzXzBfNF81X2Z1bigpIHsgZXZhbCA9IDQyOyB9Ow0K","commentary":"","description":"Strict Mode - SourceElements is evaluated as strict mode code when a FunctionDeclaration is contained in strict mode code","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch13/13.0/13_4-5gs.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAieD1mdW5jdGlvbiB5KCl7fSIgc3RhdGVtZW50IGRvZXMgbm90IHN0b3JlIGEgcmVmZXJlbmNlIHRvIHRoZSBuZXcgZnVuY3Rpb24gaW4gdGhlIHZhcmFpYmxlIHkoSWRlbnRpZmllcikKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMS5qcwogKiBAZGVzY3JpcHRpb24gQ2hlY2tpbmcgdGhlIHR5cGUgb2YgeQogKi8KCnZhciBfX2Z1bmMgPSBmdW5jdGlvbiBfX2V4cF9fZnVuYygpe3JldHVybiAwO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZnVuYyAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHR5cGVvZiBfX2V4cF9fZnVuYyAhPT0gInVuZGVmaW5lZCIpewogICAgJEVSUk9SKCcjMjogdHlwZW9mIF9fZXhwX19mdW5jID09PSAidW5kZWZpbmVkIi4gQWN0dWFsOiB0eXBlb2YgX19leHBfX2Z1bmMgPT09Jyt0eXBlb2YgX19leHBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"\"x=function y(){}\" statement does not store a reference to the new function in the varaible y(Identifier)","description":"Checking the type of y","path":"TestCases/ch13/13.0/S13_A1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBpcyBhIGRhdGEKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTAuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nIGZ1bmN0aW9uIGFzIGEgcHJvcGVydHkgb2YgYW4gb2JqZWN0CiAqLwoKZnVuY3Rpb24gX196aWdneV9fZnVuYygpe3JldHVybiAiemlnZ3kgc3RhcmR1c3QifQoKdmFyIF9fbXVzaWNfYm94PXt9OwoKX19tdXNpY19ib3guemlnZ3kgPSBfX3ppZ2d5X19mdW5jOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjCmlmICh0eXBlb2YgX19tdXNpY19ib3guemlnZ3kgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX211c2ljX2JveC56aWdneSA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19tdXNpY19ib3guemlnZ3kgPT09Jyt0eXBlb2YgX19tdXNpY19ib3guemlnZ3kpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19tdXNpY19ib3guemlnZ3koKSAhPT0gInppZ2d5IHN0YXJkdXN0IikgewoJJEVSUk9SKCcjMjogX19tdXNpY19ib3guemlnZ3koKSA9PT0gInppZ2d5IHN0YXJkdXN0Ii4gQWN0dWFsOiBfX211c2ljX2JveC56aWdneSgpID09PScrX19tdXNpY19ib3guemlnZ3koKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Function is a data","description":"Using function as a property of an object","path":"TestCases/ch13/13.0/S13_A10.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTFfVDEuanMKICogQGRlc2NyaXB0aW9uIFJldHVybmluZyByZXN1bHQgb2YgImRlbGV0ZSBhcmd1bWVudHMiCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7IHJldHVybiBkZWxldGUgYXJndW1lbnRzO30KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygiQSIsIkIiLDEsMikpIHsKCSRFUlJPUignIzE6IGFyZ3VtZW50cyBwcm9wZXJ0eSBoYXMgYXR0cmlidXRlIHsgRG9udERlbGV0ZSB9Jyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Since arguments property has attribute { DontDelete }, only its elements can be deleted","description":"Returning result of \"delete arguments\"","path":"TestCases/ch13/13.0/S13_A11_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTFfVDIuanMKICogQGRlc2NyaXB0aW9uIENoZWNraW5nIGlmIGRlbGV0aW5nIHRoZSBhcmd1bWVudHMgcHJvcGVydHkgZmFpbHMgYW5kIHRoZW4gcmV0dXJuaW5nIGl0CiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7IAogICAgZGVsZXRlIGFyZ3VtZW50czsKICAgIHJldHVybiBhcmd1bWVudHM7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2Z1bmMoIkEiLCJCIiwxLDIpICE9PSAib2JqZWN0IikgewoJJEVSUk9SKCcjMTogYXJndW1lbnRzIHByb3BlcnR5IGhhcyBhdHRyaWJ1dGUgeyBEb250RGVsZXRlIH0nKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Since arguments property has attribute { DontDelete }, only its elements can be deleted","description":"Checking if deleting the arguments property fails and then returning it","path":"TestCases/ch13/13.0/S13_A11_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTFfVDMuanMKICogQGRlc2NyaXB0aW9uIERlbGV0aW5nIGFyZ3VtZW50c1tpXSBhbmQgcmV0dXJuaW5nIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB3YXNfZGVsPWZhbHNlOwogICAgZm9yIChpPTA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspCiAgICAgICB3YXNfZGVsPSB3YXNfZGVsIHx8IGRlbGV0ZSBhcmd1bWVudHNbaV07CiAgICByZXR1cm4gd2FzX2RlbDsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIV9fZnVuYygiQSIsIkIiLDEsMikpIHsKCSRFUlJPUignIzE6IFNpbmNlIGFyZ3VtZW50cyBwcm9wZXJ0eSBoYXMgYXR0cmlidXRlIHsgRG9udERlbGV0ZSB9IGVsZW1lbnRzIG9mIGFyZ3VtZW50cyBjYW4gYmUgZGVsZXRlZCcpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Since arguments property has attribute { DontDelete }, only its elements can be deleted","description":"Deleting arguments[i] and returning result of the operation","path":"TestCases/ch13/13.0/S13_A11_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTFfVDQuanMKICogQGRlc2NyaXB0aW9uIERlbGV0aW5nIGFyZ3VtZW50c1tpXSBhbmQgY2hlY2tpbmcgdGhlIHR5cGUgb2YgYXJndW1lbnRzW2ldCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICBpc191bmRlZj10cnVlOwogICAgZm9yIChpPTA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspCiAgICB7CiAgICAgICAgZGVsZXRlIGFyZ3VtZW50c1tpXTsKICAgICAgICBpc191bmRlZj0gaXNfdW5kZWYgJiYgKHR5cGVvZiBhcmd1bWVudHNbaV0gPT09ICJ1bmRlZmluZWQiKTsKICAgIH07ICAgICAgIAogICAgcmV0dXJuIGlzX3VuZGVmOwp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIV9fZnVuYygiQSIsIkIiLDEsMikpIHsKCSRFUlJPUignIzE6IFNpbmNlIGFyZ3VtZW50cyBwcm9wZXJ0eSBoYXMgYXR0cmlidXRlIHsgRG9udERlbGV0ZSB9LCBidXQgZWxlbWVudHMgb2YgYXJndW1lbnRzIGNhbiBiZSBkZWxldGVkJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Since arguments property has attribute { DontDelete }, only its elements can be deleted","description":"Deleting arguments[i] and checking the type of arguments[i]","path":"TestCases/ch13/13.0/S13_A11_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW4gZ2xvYmFsIG9yIGZ1bmN0aW9uIHNjb3BlIGFyZSB7RG9udERlbGV0ZX0KICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTJfVDEuanMKICogQGRlc2NyaXB0aW9uIENoZWNraW5nIGlmIGRlbGV0aW5nIGEgZnVuY3Rpb24gdGhhdCBpcyBkZWNsYXJlZCBpbiBnbG9iYWwgc2NvcGUgZmFpbHMKICovCgpBTElWRT0iTGV0b3YgaXMgYWxpdmUiCgpmdW5jdGlvbiBfX2Z1bmMoKXsKICAgIHJldHVybiBBTElWRTsKfTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKGRlbGV0ZSBfX2Z1bmMpIHsKCSRFUlJPUignIzE6IGRlbGV0ZSBfX2Z1bmMgcmV0dXJuaW5nIGZhbHNlJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2Z1bmMoKSAhPT0gQUxJVkUpIHsKCSRFUlJPUignIzI6IF9fZnVuYygpID09PSBBTElWRS4gQWN0dWFsOiBfX2Z1bmMoKSA9PT0nK19fZnVuYygpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Function declarations in global or function scope are {DontDelete}","description":"Checking if deleting a function that is declared in global scope fails","path":"TestCases/ch13/13.0/S13_A12_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW4gZ2xvYmFsIG9yIGZ1bmN0aW9uIHNjb3BlIGFyZSB7RG9udERlbGV0ZX0KICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTJfVDIuanMKICogQGRlc2NyaXB0aW9uIENoZWNraW5nIGlmIGRlbGV0aW5nIGEgZnVuY3Rpb24gdGhhdCBpcyBkZWNsYXJlZCBpbiBmdW5jdGlvbiBzY29wZSBmYWlscwogKi8KCkFMSVZFPSJMZXRvdiBpcyBhbGl2ZSIKCmZ1bmN0aW9uIF9fY29udCgpewoKICAgIGZ1bmN0aW9uIF9fZnVuYygpewogICAgICAgIHJldHVybiBBTElWRTsKICAgIH07CiAgICAKICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgLy9DSEVDSyMxCiAgICBpZiAoZGVsZXRlIF9fZnVuYykgewogICAgCSRFUlJPUignIzE6IGRlbGV0ZSBfX2Z1bmMgcmV0dXJuaW5nIGZhbHNlJyk7CiAgICB9CiAgICAvLwogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAKICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgLy9DSEVDSyMyCiAgICBpZiAoX19mdW5jKCkgIT09IEFMSVZFKSB7CiAgICAJJEVSUk9SKCcjMjogX19mdW5jKCkgPT09IEFMSVZFLiBBY3R1YWw6IF9fZnVuYygpID09PScrX19mdW5jKCkpOwogICAgfQogICAgLy8KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwp9OwoKX19jb250KCk7Cgo=","commentary":"Function declarations in global or function scope are {DontDelete}","description":"Checking if deleting a function that is declared in function scope fails","path":"TestCases/ch13/13.0/S13_A12_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBEZWxldGluZyBhcmd1bWVudHNbaV0gbGVhZHMgdG8gYnJlYWtpbmcgdGhlIGNvbm5lY3Rpb24gdG8gbG9jYWwgcmVmZXJlbmNlCiAqCiAqIEBwYXRoIGNoMTMvMTMuMC9TMTNfQTEzX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWxldGluZyBhcmd1bWVudHNbaV0KICovCgpmdW5jdGlvbiBfX2Z1bmMoX19hcmcpewogIGRlbGV0ZSBhcmd1bWVudHNbMF07CiAgaWYgKGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkKSB7CiAgICAkRVJST1IoJyMxLjE6IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkJyk7CiAgfQogIHJldHVybiBfX2FyZzsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKDEpICE9PSAxKSB7CgkkRVJST1IoJyMxLjI6IF9fZnVuYygxKSA9PT0gMS4gQWN0dWFsOiBfX2Z1bmMoMSkgPT09JytfX2Z1bmMoMSkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Deleting arguments[i] leads to breaking the connection to local reference","description":"Deleting arguments[i]","path":"TestCases/ch13/13.0/S13_A13_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBEZWxldGluZyBhcmd1bWVudHNbaV0gbGVhZHMgdG8gYnJlYWtpbmcgdGhlIGNvbm5lY3Rpb24gdG8gbG9jYWwgcmVmZXJlbmNlCiAqCiAqIEBwYXRoIGNoMTMvMTMuMC9TMTNfQTEzX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGFuZ2luZyBhcmd1bWVudHMgdmFsdWUgYW5kIHRoZW4gZGVsZXRpbmcgdGhlIGFyZ3VtZW50CiAqLwoKZnVuY3Rpb24gX19mdW5jKF9fYXJnKXsKICBfX2FyZyA9IDI7CiAgZGVsZXRlIGFyZ3VtZW50c1swXTsKICBpZiAoYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQpIHsKICAgICRFUlJPUignIzEuMTogYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQnKTsKICB9CiAgcmV0dXJuIF9fYXJnOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoMSkgIT09IDIpIHsKCSRFUlJPUignIzEuMjogX19mdW5jKDEpID09PSAyLiBBY3R1YWw6IF9fZnVuYygxKSA9PT0nK19fZnVuYygxKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Deleting arguments[i] leads to breaking the connection to local reference","description":"Changing arguments value and then deleting the argument","path":"TestCases/ch13/13.0/S13_A13_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBEZWxldGluZyBhcmd1bWVudHNbaV0gbGVhZHMgdG8gYnJlYWtpbmcgdGhlIGNvbm5lY3Rpb24gdG8gbG9jYWwgcmVmZXJlbmNlCiAqCiAqIEBwYXRoIGNoMTMvMTMuMC9TMTNfQTEzX1QzLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGFuZ2luZyBhcmd1bWVudCB2YWx1ZSwgZGVsZXRpbmcgdGhlIGFyZ3VtZW50IGFuZCB0aGVuIGRlZmluaW5nIGEgbmV3IHZhbHVlIGZvciBhcmd1bWVudHNbaV0KICovCgpmdW5jdGlvbiBfX2Z1bmMoX19hcmcpewogIF9fYXJnID0gMjsKICBkZWxldGUgYXJndW1lbnRzWzBdOwogIGlmIChhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCkgewogICAgJEVSUk9SKCcjMS4xOiBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCcpOwogIH0KICBhcmd1bWVudHNbMF0gPSAiQSI7CiAgaWYgKGFyZ3VtZW50c1swXSAhPT0gIkEiKSB7CiAgICAkRVJST1IoJyMxLjI6IGFyZ3VtZW50c1swXSA9PT0gIkEiJyk7CiAgfQogIHJldHVybiBfX2FyZzsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKDEpICE9PSAyKSB7CgkkRVJST1IoJyMxLjM6IF9fZnVuYygxKSA9PT0gMi4gQWN0dWFsOiBfX2Z1bmMoMSkgPT09JytfX2Z1bmMoMSkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Deleting arguments[i] leads to breaking the connection to local reference","description":"Changing argument value, deleting the argument and then defining a new value for arguments[i]","path":"TestCases/ch13/13.0/S13_A13_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBVbmljb2RlIHN5bWJvbHMgaW4gZnVuY3Rpb24gbmFtZSBhcmUgYWxsb3dlZAogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExNC5qcwogKiBAZGVzY3JpcHRpb24gRGVmaW5pbmcgZnVuY3Rpb24gbmFtZSB3aXRoIHVuaWNvZGUgc3ltYm9scwogKi8KCmV2YWwoImZ1bmN0aW9uIF9fZnVuY1x1MDA0MShfX2FyZyl7cmV0dXJuIF9fYXJnO307Iik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19mdW5jQSAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMTogdW5pY29kZSBzeW1ib2xzIGluIGZ1bmN0aW9uIG5hbWUgYXJlIGFsbG93ZWQnKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Unicode symbols in function name are allowed","description":"Defining function name with unicode symbols","path":"TestCases/ch13/13.0/S13_A14.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExNV9UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiX19mdW5jKGFyZ3VtZW50cykiCiAqLwoKZnVuY3Rpb24gX19mdW5jKGFyZ3VtZW50cyl7CiAgICByZXR1cm4gYXJndW1lbnRzOwp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKDQyKSAhPT0gNDIpIHsKCSRFUlJPUignIzE6ICJhcmd1bWVudHMiIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cycpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Declaring a function with \"__func(arguments)\"","path":"TestCases/ch13/13.0/S13_A15_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExNV9UMi5qcwogKiBAZGVzY3JpcHRpb24gT3ZlcnJpZGluZyBhcmd1bWVudHMgd2l0aGluIGZ1bmN0aW9ucyBib2R5CiAqLwoKVEhFX0FOU1dFUj0iQW5zd2VyIHRvIExpZmUsIHRoZSBVbml2ZXJzZSwgYW5kIEV2ZXJ5dGhpbmciOwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB2YXIgYXJndW1lbnRzID0gVEhFX0FOU1dFUjsKICAgIHJldHVybiBhcmd1bWVudHM7Cn07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoNDIsNDIsNDIpICE9PSBUSEVfQU5TV0VSKSB7CgkkRVJST1IoJyMxOiAgImFyZ3VtZW50cyIgdmFyaWFibGUgb3ZlcnJpZGVzIEFjdGl2YXRpb25PYmplY3QuYXJndW1lbnRzJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Overriding arguments within functions body","path":"TestCases/ch13/13.0/S13_A15_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExNV9UMy5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgdmFyaWFibGUgbmFtZWQgd2l0aCAiYXJndW1lbnRzIiB3aXRob3V0IGEgZnVuY3Rpb24KICovCgpUSEVfQU5TV0VSPSJBbnN3ZXIgdG8gTGlmZSwgdGhlIFVuaXZlcnNlLCBhbmQgRXZlcnl0aGluZyI7Cgp2YXIgYXJndW1lbnRzID0gVEhFX0FOU1dFUjsKCmZ1bmN0aW9uIF9fZnVuYyhhcmd1bWVudHMpewogICAgcmV0dXJuIGFyZ3VtZW50czsKICAgIAp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZnVuYygpICE9PSAidW5kZWZpbmVkIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYygpID09PSAidW5kZWZpbmVkIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jKCkgPT09Jyt0eXBlb2YgX19mdW5jKCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCJUaGUgVWx0aW1hdGUgUXVlc3Rpb24iKSAhPT0gIlRoZSBVbHRpbWF0ZSBRdWVzdGlvbiIpIHsKCSRFUlJPUignIzI6IF9fZnVuYygiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIikgPT09ICJUaGUgVWx0aW1hdGUgUXVlc3Rpb24iLiBBY3R1YWw6IF9fZnVuYygiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIik9PT0nK19fZnVuYygiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIikpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Declaring a variable named with \"arguments\" without a function","path":"TestCases/ch13/13.0/S13_A15_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExNV9UNC5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgdmFyaWFibGUgbmFtZWQgd2l0aCAiYXJndW1lbnRzIiBhbmQgZm9sbG93aW5nIGEgInJldHVybiIgc3RhdGVtZW50IHdpdGhpbiBhIGZ1bmN0aW9uIGJvZHkKICovCgpUSEVfQU5TV0VSPSJBbnN3ZXIgdG8gTGlmZSwgdGhlIFVuaXZlcnNlLCBhbmQgRXZlcnl0aGluZyI7CgpmdW5jdGlvbiBfX2Z1bmMoKXsKICAgIHJldHVybiB0eXBlb2YgYXJndW1lbnRzOwogICAgdmFyIGFyZ3VtZW50cyA9IFRIRV9BTlNXRVI7Cn07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoNDIsNDIsNDIpICE9PSAib2JqZWN0IikgewoJJEVSUk9SKCcjMTogX19mdW5jKDQyLDQyLDQyKSA9PT0gIm9iamVjdCIuIEFjdHVhbDogX19mdW5jKDQyLDQyLDQyKT09PScrX19mdW5jKDQyLDQyLDQyKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Declaring a variable named with \"arguments\" and following a \"return\" statement within a function body","path":"TestCases/ch13/13.0/S13_A15_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExNV9UNS5qcwogKiBAZGVzY3JpcHRpb24gQ3JlYXRpbmcgYSB2YXJpYWJsZSBuYW1lZCB3aXRoICJhcmd1bWVudHMiIHdpdGhvdXQgYSBmdW5jdGlvbgogKi8KClRIRV9BTlNXRVI9IkFuc3dlciB0byBMaWZlLCB0aGUgVW5pdmVyc2UsIGFuZCBFdmVyeXRoaW5nIjsKCnZhciBhcmd1bWVudHMgPSBUSEVfQU5TV0VSOwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICByZXR1cm4gYXJndW1lbnRzOwp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIF9fZnVuYygpID09PSBUSEVfQU5TV0VSKSB7CgkkRVJST1IoJyMxOiBfX2Z1bmMoKSAhPT0gVEhFX0FOU1dFUicpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCJUaGUgVWx0aW1hdGUgUXVlc3Rpb24iKSA9PT0gIlRoZSBVbHRpbWF0ZSBRdWVzdGlvbiIpIHsKCSRFUlJPUignIzI6IF9fZnVuYygiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIikgIT09ICJUaGUgVWx0aW1hdGUgUXVlc3Rpb24iJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Creating a variable named with \"arguments\" without a function","path":"TestCases/ch13/13.0/S13_A15_T5.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBBbnkgc2VwYXJhdG9ycyBhcmUgYWRtaXR0ZWQgYmV0d2VlbiBkZWNsYXJhdGlvbiBjaHVua3MKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTYuanMKICogQGRlc2NyaXB0aW9uIEluc2VydGluZyBzZXBhcmF0b3JzIGJldHdlZW4gZGVjbGFyYXRpb24gY2h1bmtzCiAqLwoKZnVuY3Rpb24KeAooCikKewp9CjsKCngoKTsKCmZ1bmN0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9OwoKeSgpOwoKZnVuY3Rpb24KCnoKCigKCikKCnsKICAgIAp9Cgo7Cgp6KCk7CgpldmFsKCJmdW5jdGlvblx1MDAwOVx1MjAyOXcoXHUwMDBDKVx1MDBBMHtcdTAwMER9OyIpOwoKdygpOwoK","commentary":"Any separators are admitted between declaration chunks","description":"Inserting separators between declaration chunks","path":"TestCases/ch13/13.0/S13_A16.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBjYWxsIGNhbm5vdCBhcHBlYXIgaW4gdGhlIHByb2dyYW0gYmVmb3JlIHRoZSBGdW5jdGlvbkV4cHJlc3Npb24gYXBwZWFycwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExN19UMS5qcwogKiBAZGVzY3JpcHRpb24gVHJ5aW5nIHRvIGNhbGwgYSBmdW5jdGlvbiBiZWZvcmUgdGhlIEZ1bmN0aW9uRXhwcmVzc2lvbiBhcHBlYXJzCiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnl7CiAgICB2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKTsKCSRGQUlMKCIjMS4xOiB2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbiIpOwp9IGNhdGNoKGUpIHsKICBpZiAoKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpICE9PSB0cnVlKSB7CiAgICAkRVJST1IoJyMxLjI6IGZ1bmMgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yICBBY3R1YWw6ICcgKyAoZSkpOyAgCiAgfQp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fZnVuYyA9IGZ1bmN0aW9uICgpe3JldHVybiAiT05FIjt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgp2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKTsKaWYgKF9fcmVzdWx0ICE9PSAiT05FIikgewoJJEVSUk9SKCcjMjogX19yZXN1bHQgPT09ICJPTkUiLiBBY3R1YWw6IF9fcmVzdWx0ID09PScrX19yZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKX19mdW5jID0gZnVuY3Rpb24gKCl7cmV0dXJuICJUV08iO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCnZhciBfX3Jlc3VsdCA9IF9fZnVuYygpOwppZiAoX19yZXN1bHQgIT09ICJUV08iKSB7CgkkRVJST1IoJyMzOiBfX3Jlc3VsdCA9PT0gIlRXTyIuIEFjdHVhbDogX19yZXN1bHQgPT09JytfX3Jlc3VsdCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Function call cannot appear in the program before the FunctionExpression appears","description":"Trying to call a function before the FunctionExpression appears","path":"TestCases/ch13/13.0/S13_A17_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBjYWxsIGNhbm5vdCBhcHBlYXIgaW4gdGhlIHByb2dyYW0gYmVmb3JlIHRoZSBGdW5jdGlvbkV4cHJlc3Npb24gYXBwZWFycwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExN19UMi5qcwogKiBAZGVzY3JpcHRpb24gVHJ5aW5nIHRvIGNhbGwgYSBmdW5jdGlvbiBiZWZvcmUgdGhlIEZ1bmN0aW9uRXhwcmVzc2lvbiBhcHBlYXJzIGFuZCB0aGVuIHVzaW5nIHRoZSBGdW5jdGlvbkV4cHJlc3Npb24gb25lIG1vcmUgdGltZQogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5ewogICAgdmFyIF9fcmVzdWx0ID0gX19mdW5jKCk7CgkkRVJST1IoIiMxOiB2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbiIpOwp9IGNhdGNoKGUpIHsKICBpZiAoKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpICE9PSB0cnVlKSB7CiAgICAkRVJST1IoJyMxLjI6IGZ1bmMgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yICBBY3R1YWw6ICcgKyAoZSkpOyAgCiAgfQp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8gbm93IHdlIHJlYWNoIHRoZSBfX2Z1bmMgb3ZlcndyaXRpbmcgYnkgbmV3IGV4cHJlc3Npb24KdmFyIF9fZnVuYyA9IGZ1bmN0aW9uIF9fZnVuYygpe3JldHVybiAiT05FIjt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgp2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKTsKaWYgKF9fcmVzdWx0ICE9PSAiT05FIikgewoJJEVSUk9SKCcjMjogX19yZXN1bHQgPT09ICJPTkUiLiBBY3R1YWw6IF9fcmVzdWx0ID09PScrX19yZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKX19mdW5jID0gZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuICJUV08iO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCnZhciBfX3Jlc3VsdCA9IF9fZnVuYygpOwppZiAoX19yZXN1bHQgIT09ICJUV08iKSB7CgkkRVJST1IoJyMzOiBfX3Jlc3VsdCA9PT0gIlRXTyIuIEFjdHVhbDogX19yZXN1bHQgPT09JytfX3Jlc3VsdCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Function call cannot appear in the program before the FunctionExpression appears","description":"Trying to call a function before the FunctionExpression appears and then using the FunctionExpression one more time","path":"TestCases/ch13/13.0/S13_A17_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDbG9zdXJlcyBhcmUgYWRtaXR0ZWQKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMTguanMKICogQGRlc2NyaXB0aW9uIFVzaW5nIGEgZnVuY3Rpb24gZGVjbGFyYXRpb24gYXMgYSBmdW5jdGlvbiBwYXJhbWV0ZXIKICovCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2Ygc2lueCAhPT0gJ3VuZGVmaW5lZCcpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBzaW54ID09PSBcJ3VuZGVmaW5lZFwnLiBBY3R1YWw6IHR5cGVvZiBzaW54ID09PScrdHlwZW9mIHNpbngpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fdmFsID0gZnVuY3Rpb24gZGVyaXZhdGl2ZShmLCBkeCkgewogICAgcmV0dXJuIGZ1bmN0aW9uKHgpIHsKICAgICAgcmV0dXJuIChmKHggKyBkeCkgLSBmKHgpKSAvIGR4OwogICAgfTsKfShmdW5jdGlvbiBzaW54KHgpe3JldHVybiBNYXRoLnNpbih4KTt9LC4wMDAxKSgwLjUpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAodHlwZW9mIHNpbnggIT09ICd1bmRlZmluZWQnKSB7CgkkRVJST1IoJyMyOiB0eXBlb2Ygc2lueCA9PT0gXCd1bmRlZmluZWRcJy4gQWN0dWFsOiB0eXBlb2Ygc2lueCA9PT0nK3R5cGVvZiBzaW54KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Closures are admitted","description":"Using a function declaration as a function parameter","path":"TestCases/ch13/13.0/S13_A18.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAidmFyIiBkb2VzIG5vdCBvdmVycmlkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbgogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExOV9UMS5qcwogKiBAZGVzY3JpcHRpb24gQ3JlYXRpbmcgYSBmdW5jdGlvbiBhbmQgYSB2YXJpYWJsZSB3aXRoIGlkZW50aWNhbCBJZGVudGlmaWVycyBpbiBnbG9iYWwgc2NvcGUKICovCgovLyBzaW5jZSAidmFyIiBkb2VzIG5vdCBvdmVycmlkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBfX2RlY2wgaXMgc2V0IHRvIGZ1bmN0aW9uCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2RlY2wgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2RlY2wgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZGVjbCA9PT0nK3R5cGVvZiBfX2RlY2wpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fZGVjbCA9IDE7CgovL3NpbmNlIHN0YXRlbWVudCB3YXMgZXZhbHV0ZWQgX19kZWNsIHR1cm5zIHRvIDEgZnJvbSBmdW5jdGlvbgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2RlY2wgIT09IDEpIHsKCSRFUlJPUignIzI6IF9fZGVjbCA9PT0gMS4gQWN0dWFsOiBfX2RlY2wgPT09JytfX2RlY2wpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19kZWNsKCl7cmV0dXJuIDE7fQoK","commentary":"\"var\" does not override function declaration","description":"Creating a function and a variable with identical Identifiers in global scope","path":"TestCases/ch13/13.0/S13_A19_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAidmFyIiBkb2VzIG5vdCBvdmVycmlkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbgogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0ExOV9UMi5qcwogKiBAZGVzY3JpcHRpb24gQ3JlYXRpbmcgYSBmdW5jdGlvbiBhbmQgYSB2YXJpYWJsZSB3aXRoIGlkZW50aWNhbCBJZGVudGlmaWVycyB3aXRoaW4gZnVuY3Rpb24gc2NvcGUKICovCgooZnVuY3Rpb24gKCl7CgogICAgLy8gc2luY2UgInZhciIgZG9lcyBub3Qgb3ZlcnJpZGUgZnVuY3Rpb24gZGVjbGFyYXRpb24gX19kZWNsIGlzIHNldCB0byBmdW5jdGlvbgogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAvL0NIRUNLIzEKICAgIGlmICh0eXBlb2YgX19kZWNsICE9PSAiZnVuY3Rpb24iKSB7CiAgICAJJEVSUk9SKCcjMTogdHlwZW9mIF9fZGVjbCA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19kZWNsID09PScrdHlwZW9mIF9fZGVjbCk7CiAgICB9CiAgICAvLwogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAKICAgIHZhciBfX2RlY2wgPSAxOwogICAgCiAgICAvL3NpbmNlIHN0YXRlbWVudCB3YXMgZXZhbHV0ZWQgX19kZWNsIHR1cm5zIHRvIDEgZnJvbSBmdW5jdGlvbgogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAvL0NIRUNLIzIKICAgIGlmIChfX2RlY2wgIT09IDEpIHsKICAgIAkkRVJST1IoJyMyOiBfX2RlY2wgPT09IDEuIEFjdHVhbDogX19kZWNsID09PScrX19kZWNsKTsKICAgIH0KICAgIC8vCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCiAgICBmdW5jdGlvbiBfX2RlY2woKXtyZXR1cm4gMTt9Cn0pKCk7ICAgIAoK","commentary":"\"var\" does not override function declaration","description":"Creating a function and a variable with identical Identifiers within function scope","path":"TestCases/ch13/13.0/S13_A19_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBmdW5jdGlvbiBtdXN0IGJlIGV2YWx1YXRlZCBpbnNpZGUgdGhlIGV4cHJlc3Npb24KICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMl9UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVmaW5pbmcgZnVuY3Rpb24gYm9keSB3aXRoICJyZXR1cm4gYXJnIgogKi8KCnZhciB4ID0gKGZ1bmN0aW9uIF9fZnVuYyhhcmcpe3JldHVybiBhcmd9KSgxKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHggIT09IDEpIHsKCSRFUlJPUignIzE6IHggPT09IDEuIEFjdHVhbDogeCA9PT0nK3gpOwp9CgovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICd1bmRlZmluZWQnKSB7CgkkRVJST1IoJyMyOiB0eXBlb2YgX19mdW5jID09PSBcJ3VuZGVmaW5lZFwnLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"function must be evaluated inside the expression","description":"Defining function body with \"return arg\"","path":"TestCases/ch13/13.0/S13_A2_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBmdW5jdGlvbiBtdXN0IGJlIGV2YWx1YXRlZCBpbnNpZGUgdGhlIGV4cHJlc3Npb24KICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMl9UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVmaW5pbmcgZnVuY3Rpb24gYm9keSB3aXRoICJyZXR1cm4gYXJnICsgYXJndW1lbnRzWzFdIgogKi8KCnZhciB4ID0gKGZ1bmN0aW9uIF9fZnVuYyhhcmcpe3JldHVybiBhcmcgKyBhcmd1bWVudHNbMV19KSgxLCIxIik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh4ICE9PSAiMTEiKSB7CgkkRVJST1IoJyMxOiB4ID09PSAiMTEiLiBBY3R1YWw6IHggPT09Jyt4KTsKfQoKLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICh0eXBlb2YgX19mdW5jICE9PSAndW5kZWZpbmVkJykgewoJJEVSUk9SKCcjMjogdHlwZW9mIF9fZnVuYyA9PT0gXCd1bmRlZmluZWRcJy4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"function must be evaluated inside the expression","description":"Defining function body with \"return arg + arguments[1]\"","path":"TestCases/ch13/13.0/S13_A2_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBmdW5jdGlvbiBtdXN0IGJlIGV2YWx1YXRlZCBpbnNpZGUgdGhlIGV4cHJlc3Npb24KICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BMl9UMy5qcwogKiBAZGVzY3JpcHRpb24gRGVmaW5pbmcgZnVuY3Rpb24gYm9keSB3aXRoICJyZXR1cm4gYXJndW1lbnRzWzBdICsiLSIrIGFyZ3VtZW50c1sxXSIKICovCgp2YXIgeCA9IChmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gYXJndW1lbnRzWzBdICsiLSIrIGFyZ3VtZW50c1sxXX0pKCJPYmkiLCJXYW4iKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHggIT09ICJPYmktV2FuIikgewoJJEVSUk9SKCcjMTogeCA9PT0gIk9iaS1XYW4iLiBBY3R1YWw6IHggPT09Jyt4KTsKfQoKLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICh0eXBlb2YgX19mdW5jICE9PSAndW5kZWZpbmVkJykgewoJJEVSUk9SKCcjMjogdHlwZW9mIF9fZnVuYyA9PT0gXCd1bmRlZmluZWRcJy4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"function must be evaluated inside the expression","description":"Defining function body with \"return arguments[0] +\"-\"+ arguments[1]\"","path":"TestCases/ch13/13.0/S13_A2_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmllciBpbiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tIGluc2lkZSB0aGUgRnVuY3Rpb25FeHByZXNzaW9uJ3MgRnVuY3Rpb25Cb2R5IHRvIGFsbG93IHRoZSBmdW5jdGlvbiBjYWxsaW5nIGl0c2VsZiByZWN1cnNpdmVseQogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0EzX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBDcmVhdGluZyBhIHJlY3Vyc2l2ZSBmdW5jdGlvbiB0aGF0IGNhbGN1bGF0ZXMgZmFjdG9yaWFsLCBhcyBhIHZhcmlhYmxlLgogKiBGdW5jdGlvbiBjYWxsIGl0c2VsZiBieSBpdGBzIG5hbWUKICovCgp2YXIgX19mdW5jID0gZnVuY3Rpb24gX19leHBfX2Z1bmMoYXJnKXsKICAgIGlmIChhcmcgPT09IDEpIHsKICAgIAlyZXR1cm4gYXJnOwogICAgfSBlbHNlIHsKICAgIAlyZXR1cm4gX19leHBfX2Z1bmMoYXJnLTEpKmFyZzsKICAgIH0KfTsKCnZhciBmYWN0X29mXzMgPSAgX19mdW5jKDMpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoZmFjdF9vZl8zICE9PSA2KSB7CgkkRVJST1IoIiMxOiBmYWN0X29mXzMgPT09IDYuIEFjdHVhbDogZmFjdF9vZl8zID09PSIrZmFjdF9vZl8zKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"The Identifier in a FunctionExpression can be referenced from inside the FunctionExpression's FunctionBody to allow the function calling itself recursively","description":"Creating a recursive function that calculates factorial, as a variable.\nFunction call itself by it`s name","path":"TestCases/ch13/13.0/S13_A3_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmllciBpbiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tIGluc2lkZSB0aGUgRnVuY3Rpb25FeHByZXNzaW9uJ3MgRnVuY3Rpb25Cb2R5IHRvIGFsbG93IHRoZSBmdW5jdGlvbiBjYWxsaW5nIGl0c2VsZiByZWN1cnNpdmVseQogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0EzX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBDcmVhdGluZyBhIHJlY3Vyc2l2ZSBmdW5jdGlvbiB0aGF0IGNhbGN1bGF0ZXMgZmFjdG9yaWFsLCBhcyBhIHZhcmlhYmxlLgogKiBGdW5jdGlvbiBjYWxscyBpdHNlbGYgYnkgdGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlCiAqLwoKdmFyIF9fZnVuYyA9IGZ1bmN0aW9uIChhcmcpewogICAgaWYgKGFyZyA9PT0gMSkgewogICAgCXJldHVybiBhcmc7CiAgICB9IGVsc2UgewogICAgCXJldHVybiBfX2Z1bmMoYXJnLTEpKmFyZzsKICAgIH0KfTsKCnZhciBmYWN0X29mXzMgPSAgX19mdW5jKDMpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoZmFjdF9vZl8zICE9PSA2KSB7CgkkRVJST1IoIiMxOiBmYWN0X29mXzMgPT09IDYuIEFjdHVhbDogZmFjdF9vZl8zID09PSIrZmFjdF9vZl8zKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"The Identifier in a FunctionExpression can be referenced from inside the FunctionExpression's FunctionBody to allow the function calling itself recursively","description":"Creating a recursive function that calculates factorial, as a variable.\nFunction calls itself by the name of the variable","path":"TestCases/ch13/13.0/S13_A3_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmllciBpbiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tIGluc2lkZSB0aGUgRnVuY3Rpb25FeHByZXNzaW9uJ3MgRnVuY3Rpb25Cb2R5IHRvIGFsbG93IHRoZSBmdW5jdGlvbiBjYWxsaW5nIGl0c2VsZiByZWN1cnNpdmVseQogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0EzX1QzLmpzCiAqIEBkZXNjcmlwdGlvbiBDcmVhdGluZyBzaW1wbGUgcmVjdXJzaXZlIGZ1bmN0aW9uIHRoYXQgY2FsY3VsYXRlcyBmYWN0b3JpYWwKICovCgpmdW5jdGlvbiBfX2Z1bmMoYXJnKXsKICAgIGlmIChhcmcgPT09IDEpIHsKICAgIAlyZXR1cm4gYXJnOwogICAgfSBlbHNlIHsKICAgIAlyZXR1cm4gX19mdW5jKGFyZy0xKSphcmc7CiAgICB9Cn07Cgp2YXIgZmFjdF9vZl8zID0gIF9fZnVuYygzKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKGZhY3Rfb2ZfMyAhPT0gNikgewoJJEVSUk9SKCIjMTogZmFjdF9vZl8zID09PSA2LiBBY3R1YWw6IGZhY3Rfb2ZfMyA9PT0iK2ZhY3Rfb2ZfMyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"The Identifier in a FunctionExpression can be referenced from inside the FunctionExpression's FunctionBody to allow the function calling itself recursively","description":"Creating simple recursive function that calculates factorial","path":"TestCases/ch13/13.0/S13_A3_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0E0X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgc3RyaW5nCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuICJ6aWctemlnLXNwdXRuaWsiO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxIAppZiAodHlwZW9mIF9fZnVuYyAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2Z1bmMoKSAhPT0gInppZy16aWctc3B1dG5payIpIHsKCSRFUlJPUignIzI6IF9fZnVuYygpID09PSAiemlnLXppZy1zcHV0bmlrIi4gQWN0dWFsOiBfX2Z1bmMoKSA9PT0nK19fZnVuYygpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"The production FunctionDeclaration: \"function Identifier ( FormalParameterList_opt ) { FunctionBody }\" is processed by function declarations","description":"Declaring a function that returns string","path":"TestCases/ch13/13.0/S13_A4_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0E0X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB0aGF0IHVzZXMgcHJlZml4IGluY3JlbWVudCBvcGVyYXRvciB3aXRoaW4gaXRzICJyZXR1cm4iIEV4cHJlc3Npb24KICovCgpmdW5jdGlvbiBfX2Z1bmMoYXJnKXtyZXR1cm4gKythcmc7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEgCmlmICh0eXBlb2YgX19mdW5jICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19mdW5jID09PSAiZnVuY3Rpb24iLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYygxKSAhPT0gMikgewoJJEVSUk9SKCcjMjogX19mdW5jKDEpID09PSAyLiBBY3R1YWw6IF9fZnVuYygxKSA9PT0nK19fZnVuYygxKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"The production FunctionDeclaration: \"function Identifier ( FormalParameterList_opt ) { FunctionBody }\" is processed by function declarations","description":"Declaring a function that uses prefix increment operator within its \"return\" Expression","path":"TestCases/ch13/13.0/S13_A4_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0E0X1QzLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB0aGF0IHVzZXMgYXJpdGhtZXRpY2FsIG9wZXJhdG9ycyB3aXRoaW4gaXRzICJyZXR1cm4iIEV4cHJlc3Npb24KICovCgpmdW5jdGlvbiBfX2Z1bmMoYXJnMSwgYXJnMiwgYXJnMyl7cmV0dXJuIGFyZzErPShhcmcyKz1hcmczKTt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMSAKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2Z1bmMgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKDEwLCAyMCwgMzApICE9PSA2MCkgewoJJEVSUk9SKCcjMjogX19mdW5jKDEwLCAyMCwgMzApID09PSA2MC4gQWN0dWFsOiBfX2Z1bmMoMTAsMjAsMzApID09PScrX19mdW5jKDEwLDIwLDMwKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"The production FunctionDeclaration: \"function Identifier ( FormalParameterList_opt ) { FunctionBody }\" is processed by function declarations","description":"Declaring a function that uses arithmetical operators within its \"return\" Expression","path":"TestCases/ch13/13.0/S13_A4_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzLzEzLjAvUzEzX0E0X1Q0LmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB0aGF0IHVzZXMgc3RyaW5ncyBjb25jYXRlbmFpb24gb3BlYXRvciB3aXRoaW4gaXRzICJyZXR1cm4iIEV4cHJlc3Npb24KICovCgpmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gYXJndW1lbnRzWzBdLm5hbWUgKyAiICIgKyBhcmd1bWVudHNbMF0uc3VybmFtZTt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMSAKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2Z1bmMgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKHtuYW1lOidmb3gnLCBzdXJuYW1lOidtYWxkZXInfSkgIT09ICJmb3ggbWFsZGVyIikgewoJJEVSUk9SKCcjMjogX19mdW5jKHtuYW1lOlwnZm94XCcsIHN1cm5hbWU6XCdtYWxkZXJcJ30pID09PSAiZm94IG1hbGRlciIuIEFjdHVhbDogX19mdW5jKHtuYW1lOlwnZm94XCcsIHN1cm5hbWU6XCdtYWxkZXJcJ30pID09PScrX19mdW5jKHtuYW1lOidmb3gnLCBzdXJuYW1lOidtYWxkZXInfSkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gZnVuY19fKGFyZyl7cmV0dXJuIGFyZy5uYW1lICsgIiAiICsgYXJnLnN1cm5hbWU7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMgCmlmICh0eXBlb2YgZnVuY19fICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyMzOiB0eXBlb2YgZnVuY19fID09PSAiZnVuY3Rpb24iLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzQKaWYgKGZ1bmNfXyh7bmFtZTonam9obicsIHN1cm5hbWU6J2xlbm5vbid9KSAhPT0gImpvaG4gbGVubm9uIikgewoJJEVSUk9SKCcjNDogZnVuY19fKHtuYW1lOlwnam9oblwnLCBzdXJuYW1lOlwnbGVubm9uXCd9KSA9PT0gImpvaG4gbGVubm9uIi4gQWN0dWFsOiBfX2Z1bmMoe25hbWU6XCdqb2huXCcsIHN1cm5hbWU6XCdsZW5ub25cJ30pID09PScrX19mdW5jKHtuYW1lOidqb2huJywgc3VybmFtZTonbGVubm9uJ30pKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"The production FunctionDeclaration: \"function Identifier ( FormalParameterList_opt ) { FunctionBody }\" is processed by function declarations","description":"Declaring a function that uses strings concatenaion opeator within its \"return\" Expression","path":"TestCases/ch13/13.0/S13_A4_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIGNhbiBiZSBvdmVycmlkZWQgYnkgb3RoZXIgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aXRoIHRoZSBzYW1lIElkZW50aWZpZXIKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BNl9UMS5qcwogKiBAZGVzY3JpcHRpb24gRHVwbGljYXRpbmcgZnVuY3Rpb24gZGVjbGFyYXRpb24KICovCgpmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gMX07CiAKdmFyIF9fc3RvcmVfX2Z1bmMgPSBfX2Z1bmM7CiAKdmFyIF9fMSA9IF9fZnVuYygpOwogCiBmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gJ0EnfTsKIAp2YXIgX19BID0gX19mdW5jKCk7CiAKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19zdG9yZV9fZnVuYyAhPT0gX19mdW5jKSB7CgkkRVJST1IoJyMxOiBfX3N0b3JlX19mdW5jID09PSBfX2Z1bmMuIEFjdHVhbDogX19zdG9yZV9fZnVuYyA9PT0nK19fc3RvcmVfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAKIAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfXzEgIT09IF9fQSkgewoJJEVSUk9SKCcjMjogX18xID09PSBfX0EuIEFjdHVhbDogX18xID09PScrX18xKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"FunctionDeclaration can be overrided by other FunctionDeclaration with the same Identifier","description":"Duplicating function declaration","path":"TestCases/ch13/13.0/S13_A6_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIGNhbiBiZSBvdmVycmlkZWQgYnkgb3RoZXIgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aXRoIHRoZSBzYW1lIElkZW50aWZpZXIKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BNl9UMi5qcwogKiBAZGVzY3JpcHRpb24gQ2FsbGluZyBhIGZ1bmN0aW9uIGJlZm9yZSBpdCBpcyBkZWNsYXJlZCBvbmUgbW9yZSB0aW1lCiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnl7CiAgICB2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKTsKfSBjYXRjaChlKSB7CiAgICAkRkFJTCgiIzE6IEZ1bmN0aW9uIGNhbGwgY2FuIGFwcGVhcnMgaW4gdGhlIHByb2dyYW0gYmVmb3JlIHRoZSBGdW5jdGlvbkRlY2xhcmF0aW9uIGFwcGVhcnMiKTsKfQppZiAoX19yZXN1bHQgIT09ICJTRUNPTkQiKSB7CgkkRVJST1IoJyMxLjE6IF9fcmVzdWx0ID09PSAiU0VDT05EIi4gQWN0dWFsOiBfX3Jlc3VsdCA9PT0nK19fcmVzdWx0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIF9fZnVuYygpe3JldHVybiAiRklSU1QiO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCl9fcmVzdWx0ID0gX19mdW5jKCk7CmlmIChfX3Jlc3VsdCAhPT0gIlNFQ09ORCIpIHsKCSRFUlJPUignIzI6IF9fcmVzdWx0ID09PSAiU0VDT05EIi4gQWN0dWFsOiBfX3Jlc3VsdCA9PT0nK19fcmVzdWx0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIF9fZnVuYygpe3JldHVybiAiU0VDT05EIjt9OwoK","commentary":"FunctionDeclaration can be overrided by other FunctionDeclaration with the same Identifier","description":"Calling a function before it is declared one more time","path":"TestCases/ch13/13.0/S13_A6_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgRnVuY3Rpb25Cb2R5IG11c3QgYmUgU291cmNlRWxlbWVudHMKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BN19UMS5qcwogKiBAZGVzY3JpcHRpb24gVXNpbmcgb25seSBTb3VyY2VFbGVtZW50cyB3aXRoaW4gdGhlIEZ1bmN0aW9uQm9keQogKi8KCmZ1bmN0aW9uIF9fZnVuYygpeydncm91bmQgY29udHJvbCB0byBtYWpvciB0b20nfTsKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZnVuYyAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2Z1bmNfXzIoKXtifTsKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAodHlwZW9mIF9fZnVuY19fMiAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMjogdHlwZW9mIF9fZnVuY19fMiA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jX18yID09PScrdHlwZW9mIF9fZnVuY19fMik7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2Z1bmNfXzMoKXsxfTsKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAodHlwZW9mIF9fZnVuY19fMyAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMzogdHlwZW9mIF9fZnVuY19fMyA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jX18zID09PScrdHlwZW9mIF9fZnVuY19fMyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2Z1bmNfXzQoKXsxK2N9OwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM0CmlmICh0eXBlb2YgX19mdW5jX180ICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyM0OiB0eXBlb2YgX19mdW5jX180ID09PSAiZnVuY3Rpb24iLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmNfXzQgPT09Jyt0eXBlb2YgX19mdW5jX180KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIF9fZnVuY19fNSgpe2luYyhkKX07Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzUKaWYgKHR5cGVvZiBfX2Z1bmNfXzUgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzU6IHR5cGVvZiBfX2Z1bmNfXzUgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuY19fNSA9PT0nK3R5cGVvZiBfX2Z1bmNfXzUpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19mdW5jX182KCl7dmFyIFx1MDA0MiA9IDE7fTsKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNgppZiAodHlwZW9mIF9fZnVuY19fNiAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjNjogdHlwZW9mIF9fZnVuY19fNiA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jX182ID09PScrdHlwZW9mIF9fZnVuY19fNik7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovL2Z1bmN0aW9uIF9fZnVuY19fNygpe3ZhciBcdTAwM2QgPSAxO307Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vLy9DSEVDSyM3Ci8vaWYgKHR5cGVvZiBfX2Z1bmNfXzcgIT09ICJmdW5jdGlvbiIpIHsKLy8JJEVSUk9SKCcjNzogVGhlIEZ1bmN0aW9uQm9keSBtdXN0IGJlIFNvdXJjZUVsZW1lbnRzJyk7Ci8vfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"The FunctionBody must be SourceElements","description":"Using only SourceElements within the FunctionBody","path":"TestCases/ch13/13.0/S13_A7_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgRnVuY3Rpb25Cb2R5IG11c3QgYmUgU291cmNlRWxlbWVudHMKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BN19UMi5qcwogKiBAZGVzY3JpcHRpb24gSW5zZXJ0aW5nIGVsZW1lbnRzIHRoYXQgaXMgZGlmZmVyZW50IGZyb20gU291cmNlRWxlbWVudHMgaW50byB0aGUgRnVuY3Rpb25Cb2R5CiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnl7CglldmFsKCJmdW5jdGlvbiBfX2Z1bmMoKXsvIEFCQ30iKTsKCSRFUlJPUignIzE6IGV2YWwoImZ1bmN0aW9uIF9fZnVuYygpey8gQUJDfSIpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0gY2F0Y2goZSl7CglpZighKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpewoJCSRFUlJPUignIzEuMTogZXZhbCgiZnVuY3Rpb24gX19mdW5jKCl7LyBBQkN9IikgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24gb2YgU3ludGF4RXJyb3IuIEFjdHVhbDogZXhjZXB0aW9uIGlzICcrZSk7Cgl9Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCnRyeXsKCWV2YWwoImZ1bmN0aW9uIF9fZnVuYygpeyYxfSIpOwoJJEVSUk9SKCcjMzogZXZhbCgiZnVuY3Rpb24gX19mdW5jKCl7JjF9IikgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKTsKfSBjYXRjaChlKXsKCWlmKCEoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSl7CgkJJEVSUk9SKCcjMy4xOiBldmFsKCJmdW5jdGlvbiBfX2Z1bmMoKXsmMX0iKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbiBvZiBTeW50YXhFcnJvci4gQWN0dWFsOiBleGNlcHRpb24gaXMgJytlKTsKCX0KfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzQKdHJ5ewoJZXZhbCgiZnVuY3Rpb24gX19mdW5jKCl7IyBBQkN9Iik7CgkkRVJST1IoJyM0OiBldmFsKCJmdW5jdGlvbiBfX2Z1bmMoKXsjIEFCQ30iKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoKGUpewoJaWYoIShlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKXsKCQkkRVJST1IoJyM0LjE6IGV2YWwoImZ1bmN0aW9uIF9fZnVuYygpeyMgQUJDfSIpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uIG9mIFN5bnRheEVycm9yLiBBY3R1YWw6IGV4Y2VwdGlvbiBpcyAnK2UpOwoJfQp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"The FunctionBody must be SourceElements","description":"Inserting elements that is different from SourceElements into the FunctionBody","path":"TestCases/ch13/13.0/S13_A7_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgRnVuY3Rpb25Cb2R5IG11c3QgYmUgU291cmNlRWxlbWVudHMKICoKICogQHBhdGggY2gxMy8xMy4wL1MxM19BN19UMy5qcwogKiBAZGVzY3JpcHRpb24gQ2hlY2tpbmcgaWYgZXhlY3V0aW9uIG9mICJmdW5jdGlvbiBfX2Z1bmMoKXtcQVxCXEN9IiBmYWlscwogKiBAbmVnYXRpdmUKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXtcQVxCXEN9OwoK","commentary":"The FunctionBody must be SourceElements","description":"Checking if execution of \"function __func(){\\A\\B\\C}\" fails","negative":"","path":"TestCases/ch13/13.0/S13_A7_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBBcmd1bWVudHMgcHJvcGVydHkgb2YgYWN0aXZhdGlvbiBvYmplY3QgY29udGFpbnMgcmVhbCBwYXJhbXMgdG8gYmUgcGFzc2VkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMC9TMTNfQThfVDEuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gZGVjbGFyZWQgd2l0aCAiZnVuY3Rpb24gX19mdW5jKHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMpIiBhbmQgdXNpbmcgYXJndW1lbnRzLmxlbmd0aCBwcm9wZXJ0eSBpbiBvcmRlciB0byBwZXJmb3JtIHRoZSB0ZXN0CiAqLwoKIGZ1bmN0aW9uIF9fZnVuYyhwYXJhbTEsIHBhcmFtMiwgcGFyYW0zKSB7CiAJcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg7CiB9CiAKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKCdBJykgIT09IDEpIHsKIAkkRVJST1IoJyMxOiBfX2Z1bmMoXCdBXCcpID09PSAxLiBBY3R1YWw6IF9fZnVuYyhcJ0FcJykgPT09JytfX2Z1bmMoJ0EnKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2Z1bmMoJ0EnLCAnQicsIDEsIDIsX19mdW5jKSAhPT0gNSkgewoJJEVSUk9SKCcjMjogX19mdW5jKFwnQVwnLCBcJ0JcJywgMSwgMixfX2Z1bmMpID09PSA1LiBBY3R1YWw6IF9fZnVuYyhcJ0FcJywgXCdCXCcsIDEsIDIsX19mdW5jKSA9PT0nK19fZnVuYygnQScsICdCJywgMSwgMixfX2Z1bmMpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAogCiAKCg==","commentary":"Arguments property of activation object contains real params to be passed","description":"Creating a function declared with \"function __func(param1, param2, param3)\" and using arguments.length property in order to perform the test","path":"TestCases/ch13/13.0/S13_A8_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBBcmd1bWVudHMgcHJvcGVydHkgb2YgYWN0aXZhdGlvbiBvYmplY3QgY29udGFpbnMgcmVhbCBwYXJhbXMgdG8gYmUgcGFzc2VkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMC9TMTNfQThfVDIuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gd2l0aCBubyBwYXJhbWV0ZXJzIGFuZCB1c2luZyBhcmd1bWVudHMubGVuZ3RoIHByb3BlcnR5IGluIG9yZGVyIHRvIHBlcmZvcm0gdGhlIHRlc3QKICovCgogZnVuY3Rpb24gX19mdW5jKCkgewogCXJldHVybiBhcmd1bWVudHMubGVuZ3RoOwogfQogCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygnQScpICE9PSAxKSB7CiAJJEVSUk9SKCcjMTogX19mdW5jKFwnQVwnKSA9PT0gMS4gQWN0dWFsOiBfX2Z1bmMoXCdBXCcpID09PScrX19mdW5jKCdBJykpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCdBJywgJ0InLCAxLCAyLF9fZnVuYykgIT09IDUpIHsKCSRFUlJPUignIzI6IF9fZnVuYyhcJ0FcJywgXCdCXCcsIDEsIDIsX19mdW5jKSA9PT0gNS4gQWN0dWFsOiBfX2Z1bmMoXCdBXCcsIFwnQlwnLCAxLCAyLF9fZnVuYykgPT09JytfX2Z1bmMoJ0EnLCAnQicsIDEsIDIsX19mdW5jKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmIChfX2Z1bmMoKSAhPT0gMCkgewoJJEVSUk9SKCcjMzogX19mdW5jKCkgPT09IDAuIEFjdHVhbDogX19mdW5jKCkgPT09JytfX2Z1bmMoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Arguments property of activation object contains real params to be passed","description":"Creating a function with no parameters and using arguments.length property in order to perform the test","path":"TestCases/ch13/13.0/S13_A8_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBjYW4gYmUgcGFzc2VkIGFzIGFyZ3VtZW50CiAqCiAqIEBwYXRoIGNoMTMvMTMuMC9TMTNfQTkuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nIGZ1bmN0aW9uIGFzIGFyZ3VtZW50IG9mIGFub3RoZXIgZnVuY3Rpb24KICovCgpmdW5jdGlvbiBfX2Z1bmNfX0lOQyhhcmcpe3JldHVybiBhcmcgKyAxO307CmZ1bmN0aW9uIF9fZnVuY19fTVVMVChpbmNyZW1lbnRhdG9yLCBhcmcsIG11bHQpeyByZXR1cm4gaW5jcmVtZW50YXRvcihhcmcpKm11bHQ7IH07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmNfX01VTFQoX19mdW5jX19JTkMsIDIsIDIpICE9PSA2KSB7CgkkRVJST1IoJyMxOiBmdW5jdGlvbiAgY2FuIGJlIHBhc3NlZCBhcyBhcmd1bWVudCcpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCg==","commentary":"Function can be passed as argument","description":"Using function as argument of another function","path":"TestCases/ch13/13.0/S13_A9.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTEtMS5qcw0KICogQGRlc2NyaXB0aW9uIER1cGxpY2F0ZSBpZGVudGlmaWVyIGFsbG93ZWQgaW4gbm9uLXN0cmljdCBmdW5jdGlvbiBkZWNsYXJhdGlvbiBwYXJhbWV0ZXIgbGlzdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKQ0Kew0KICB0cnkgDQogIHsNCiAgICBldmFsKCdmdW5jdGlvbiBmb28oYSxhKXt9Jyk7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiAgY2F0Y2ggKGUpIHsgcmV0dXJuIGZhbHNlIH0NCiAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"Duplicate identifier allowed in non-strict function declaration parameter list","path":"TestCases/ch13/13.1/13.1-1-1.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTEtMi5qcw0KICogQGRlc2NyaXB0aW9uIER1cGxpY2F0ZSBpZGVudGlmaWVyIGFsbG93ZWQgaW4gbm9uLXN0cmljdCBmdW5jdGlvbiBleHByZXNzaW9uIHBhcmFtZXRlciBsaXN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpDQp7DQogIHRyeSANCiAgew0KICAgIGV2YWwoJyhmdW5jdGlvbiBmb28oYSxhKXt9KScpOw0KICAgIHJldHVybiB0cnVlOw0KICB9DQogIGNhdGNoIChlKSB7IHJldHVybiBmYWxzZSB9DQogIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"Duplicate identifier allowed in non-strict function expression parameter list","path":"TestCases/ch13/13.1/13.1-1-2.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMS1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2V2YWwnIGFwcGVhcnMgd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlIEZ1bmN0aW9uRGVjbGFyYXRpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBfMTNfMV8xX2Z1bihldmFsKSB7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionDeclaration","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-1-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0xMC1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIGluICdzdHJpY3QgbW9kZScgdXNpbmcgYSBGdW5jdGlvbkV4cHJlc3Npb24gYW5kIHRoZSBmdW5jdGlvbiBoYXMgdGhyZWUgaWRlbnRpY2FsIHBhcmFtZXRlcnMNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJ2YXIgXzEzXzFfMTBfZnVuID0gZnVuY3Rpb24gKHBhcmFtLCBwYXJhbSwgcGFyYW0pIHsgfTsiKQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionExpression and the function has three identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-10-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTExLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdldmFsJyBvY2N1cnMgYXMgdGhlIGZ1bmN0aW9uIG5hbWUgb2YgYSBGdW5jdGlvbkRlY2xhcmF0aW9uIGluIHN0cmljdCBtb2RlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICJ1c2Ugc3RyaWN0IjsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoImZ1bmN0aW9uIGV2YWwoKSB7IH07IikNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"StrictMode - SyntaxError is thrown if 'eval' occurs as the function name of a FunctionDeclaration in strict mode","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-11-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTEyLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdldmFsJyBvY2N1cnMgYXMgdGhlIElkZW50aWZpZXIgb2YgYSBGdW5jdGlvbkV4cHJlc3Npb24gaW4gc3RyaWN0IG1vZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KICAgICAgICB2YXIgXzEzXzFfMTJfcyA9IHt9Ow0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJfMTNfMV8xMl9zLnggPSBmdW5jdGlvbiBldmFsKCkge307Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"StrictMode - SyntaxError is thrown if 'eval' occurs as the Identifier of a FunctionExpression in strict mode","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-12-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTEzLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdhcmd1bWVudHMnIG9jY3VycyBhcyB0aGUgZnVuY3Rpb24gbmFtZSBvZiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gaW4gc3RyaWN0IG1vZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBhcmd1bWVudHMoKSB7IH07IikNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"StrictMode - SyntaxError is thrown if 'arguments' occurs as the function name of a FunctionDeclaration in strict mode","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-13-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gCi8qKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMTNncy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgJ2FyZ3VtZW50cycgb2NjdXJzIGFzIHRoZSBJZGVudGlmaWVyIG9mIGEgRnVuY3Rpb25EZWNsYXJhdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBeKCg/IU5vdEVhcmx5RXJyb3IpLikqJA0KICovDQrvu78idXNlIHN0cmljdCI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KZnVuY3Rpb24gYXJndW1lbnRzKCkgeyB9Ow==","commentary":"","description":"StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionDeclaration","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-13gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTE0LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdhcmd1bWVudHMnIG9jY3VycyBhcyB0aGUgSWRlbnRpZmllciBvZiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBpbiBzdHJpY3QgbW9kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIHZhciBfMTNfMV8xNF9zID0ge307DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoIl8xM18xXzE0X3MueCA9IGZ1bmN0aW9uIGFyZ3VtZW50cygpIHt9OyIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionExpression in strict mode","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-14-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMTUtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdCBNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmIHRoZSBpZGVudGlmaWVyICdldmFsJyBhcHBlYXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3Qgb2YgYSBzdHJpY3QgbW9kZSBGdW5jdGlvbkRlY2xhcmF0aW9uIGluIHN0cmljdCBldmFsIGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiJ3VzZSBzdHJpY3QnO2Z1bmN0aW9uIF8xM18xXzE1X2Z1bihldmFsKSB7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionDeclaration in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-15-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMTYtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2V2YWwnIGFwcGVhcnMgd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlIEZ1bmN0aW9uRGVjbGFyYXRpb24gd2hlbiBGdWN0aW9uQm9keSBpcyBzdHJpY3QgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBfMTNfMV8xNl9mdW4oZXZhbCkgeyAndXNlIHN0cmljdCc7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"StrictMode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionDeclaration when FuctionBody is strict code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-16-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMTctcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2V2YWwnIGFwcGVhcnMgd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlIEZ1bmN0aW9uRXhwcmVzc2lvbiBpbiBzdHJpY3QgZXZhbCBjb2RlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoIid1c2Ugc3RyaWN0JzsgdmFyIF8xM18xXzE3X2Z1biA9IGZ1bmN0aW9uIChldmFsKSB7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"StrictMode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionExpression in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-17-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMTgtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2V2YWwnIGFwcGVhcnMgd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlIEZ1bmN0aW9uRXhwcmVzc2lvbiB3aGVuIEZ1Y3Rpb25Cb2R5IGlzIHN0cmljdCBjb2RlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoInZhciBfMTNfMV8xOF9mdW4gPSBmdW5jdGlvbiAoZXZhbCkgeyAndXNlIHN0cmljdCc7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"StrictMode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionExpression when FuctionBody is strict code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-18-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMTktcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdCBNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmIHRoZSBpZGVudGlmaWVyICdhcmd1bWVudHMnIGFwcGVhcnMgd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlIEZ1bmN0aW9uRGVjbGFyYXRpb24gaW4gc3RyaWN0IGV2YWwgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCIndXNlIHN0cmljdCc7ZnVuY3Rpb24gXzEzXzFfMTlfZnVuKGFyZ3VtZW50cykgeyB9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionDeclaration in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-19-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gCi8qKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMWdzLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2V2YWwnIGFwcGVhcnMgd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlIEZ1bmN0aW9uRGVjbGFyYXRpb24NCiAqIEBvbmx5U3RyaWN0DQogKiBAbmVnYXRpdmUgXigoPyFOb3RFYXJseUVycm9yKS4pKiQNCiAqLw0KInVzZSBzdHJpY3QiOw0KdGhyb3cgTm90RWFybHlFcnJvcjsNCmZ1bmN0aW9uIF8xM18xXzFfZnVuKGV2YWwpIHsgfQ==","commentary":"","description":"Strict Mode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionDeclaration","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-1gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTItMS5qcw0KICogQGRlc2NyaXB0aW9uIGV2YWwgYWxsb3dlZCBhcyBmb3JtYWwgcGFyYW1ldGVyIG5hbWUgb2YgYSBub24tc3RyaWN0IGZ1bmN0aW9uIGRlY2xhcmF0aW9uDQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpDQp7DQogIHRyeSANCiAgew0KICAgIGV2YWwoImZ1bmN0aW9uIGZvbyhldmFsKXt9OyIpOw0KICAgIHJldHVybiB0cnVlOw0KICB9DQogIGNhdGNoIChlKSB7ICB9DQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"eval allowed as formal parameter name of a non-strict function declaration","path":"TestCases/ch13/13.1/13.1-2-1.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTItMi5qcw0KICogQGRlc2NyaXB0aW9uIGV2YWwgYWxsb3dlZCBhcyBmb3JtYWwgcGFyYW1ldGVyIG5hbWUgb2YgYSBub24tc3RyaWN0IGZ1bmN0aW9uIGV4cHJlc3Npb24NCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkNCnsNCiAgICBldmFsKCIoZnVuY3Rpb24gZm9vKGV2YWwpe30pOyIpOw0KICAgIHJldHVybiB0cnVlOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"eval allowed as formal parameter name of a non-strict function expression","path":"TestCases/ch13/13.1/13.1-2-2.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTItNS5qcw0KICogQGRlc2NyaXB0aW9uIGFyZ3VtZW50cyBhbGxvd2VkIGFzIGZvcm1hbCBwYXJhbWV0ZXIgbmFtZSBvZiBhIG5vbi1zdHJpY3QgZnVuY3Rpb24gZGVjbGFyYXRpb24NCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkNCnsNCiAgdHJ5IA0KICB7DQogICAgZXZhbCgiZnVuY3Rpb24gZm9vKGFyZ3VtZW50cyl7fTsiKTsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICBjYXRjaCAoZSkgeyAgfQ0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"arguments allowed as formal parameter name of a non-strict function declaration","path":"TestCases/ch13/13.1/13.1-2-5.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTItNi5qcw0KICogQGRlc2NyaXB0aW9uIGFyZ3VtZW50cyBhbGxvd2VkIGFzIGZvcm1hbCBwYXJhbWV0ZXIgbmFtZSBvZiBhIG5vbi1zdHJpY3QgZnVuY3Rpb24gZXhwcmVzc2lvbg0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKQ0Kew0KICAgIGV2YWwoIihmdW5jdGlvbiBmb28oYXJndW1lbnRzKXt9KTsiKTsNCiAgICByZXR1cm4gdHJ1ZTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"arguments allowed as formal parameter name of a non-strict function expression","path":"TestCases/ch13/13.1/13.1-2-6.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMi1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2V2YWwnIGFwcGVhcnMgd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlIEZ1bmN0aW9uRXhwcmVzc2lvbg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoInZhciBfMTNfMV8yX2Z1biA9IGZ1bmN0aW9uIChldmFsKSB7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if the identifier 'eval' appears within a FormalParameterList of a strict mode FunctionExpression","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-2-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMjAtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2FyZ3VtZW50cycgYXBwZWFycyB3aXRoaW4gYSBGb3JtYWxQYXJhbWV0ZXJMaXN0IG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aGVuIEZ1Y3Rpb25Cb2R5IGlzIHN0cmljdCBjb2RlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoImZ1bmN0aW9uIF8xM18xXzIwX2Z1bihhcmd1bWVudHMpIHsgJ3VzZSBzdHJpY3QnOyB9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"StrictMode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionDeclaration when FuctionBody is strict code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-20-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMjEtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2FyZ3VtZW50cycgYXBwZWFycyB3aXRoaW4gYSBGb3JtYWxQYXJhbWV0ZXJMaXN0IG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25FeHByZXNzaW9uIGluIHN0cmljdCBldmFsIGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiJ3VzZSBzdHJpY3QnOyB2YXIgXzEzXzFfMjFfZnVuID0gZnVuY3Rpb24gKGFyZ3VtZW50cykgeyB9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"StrictMode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionExpression in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-21-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMjItcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2FyZ3VtZW50cycgYXBwZWFycyB3aXRoaW4gYSBGb3JtYWxQYXJhbWV0ZXJMaXN0IG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25FeHByZXNzaW9uIHdoZW4gRnVjdGlvbkJvZHkgaXMgc3RyaWN0IGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgidmFyIF8xM18xXzIyX2Z1biA9IGZ1bmN0aW9uIChhcmd1bWVudHMpIHsgJ3VzZSBzdHJpY3QnOyB9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"StrictMode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionExpression when FuctionBody is strict code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-22-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0yMy1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25EZWNsYXJhdGlvbiB0aGF0IGlzIGNvbnRhaW5lZCBpbiBldmFsIHN0cmljdCBjb2RlIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHR3byBpZGVudGljYWwgcGFyYW1ldGVycw0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCIndXNlIHN0cmljdCc7IGZ1bmN0aW9uIF8xM18xXzIzX2Z1bihwYXJhbSwgcGFyYW0pIHsgfSIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration that is contained in eval strict code and the function has two identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-23-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0yNC1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aG9zZSBGdW5jdGlvbkJvZHkgaXMgY29udGFpbmVkIGluIHN0cmljdCBjb2RlIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHR3byBpZGVudGljYWwgcGFyYW1ldGVycw0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBfMTNfMV8yNF9mdW4ocGFyYW0sIHBhcmFtKSB7ICd1c2Ugc3RyaWN0JzsgfSIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration whose FunctionBody is contained in strict code and the function has two identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-24-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0yNS1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25EZWNsYXJhdGlvbiB0aGF0IGlzIGNvbnRhaW5lZCBpbiBldmFsIHN0cmljdCBjb2RlIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHR3byBpZGVudGljYWwgcGFyYW1ldGVycyB3aGljaCBhcmUgc2VwYXJhdGVkIGJ5IGEgdW5pcXVlIHBhcmFtZXRlciBuYW1lDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoIid1c2Ugc3RyaWN0JzsgZnVuY3Rpb24gXzEzXzFfMjVfZnVuKHBhcmFtMSwgcGFyYW0yLCBwYXJhbTEpIHsgfSIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration that is contained in eval strict code and the function has two identical parameters which are separated by a unique parameter name","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-25-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0yNi1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aG9zZSBGdW5jdGlvbkJvZHkgaXMgY29udGFpbmVkIGluIHN0cmljdCBjb2RlIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHR3byBpZGVudGljYWwgcGFyYW1ldGVycyB3aGljaCBhcmUgc2VwYXJhdGVkIGJ5IGEgdW5pcXVlIHBhcmFtZXRlciBuYW1lDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoImZ1bmN0aW9uIF8xM18xXzI2X2Z1bihwYXJhbTEsIHBhcmFtMiwgcGFyYW0xKSB7ICd1c2Ugc3RyaWN0JzsgfSIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration whose FunctionBody is contained in strict code and the function has two identical parameters which are separated by a unique parameter name","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-26-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0yNy1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25EZWNsYXJhdGlvbiB0aGF0IGlzIGNvbnRhaW5lZCBpbiBldmFsIHN0cmljdCBjb2RlIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHRocmVlIGlkZW50aWNhbCBwYXJhbWV0ZXJzDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoIid1c2Ugc3RyaWN0JzsgZnVuY3Rpb24gXzEzXzFfMjdfZnVuKHBhcmFtLCBwYXJhbSwgcGFyYW0pIHsgfSIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration that is contained in eval strict code and the function has three identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-27-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0yOC1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aG9zZSBGdW5jdGlvbkJvZHkgaXMgY29udGFpbmVkIGluIHN0cmljdCBjb2RlIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHRocmVlIGlkZW50aWNhbCBwYXJhbWV0ZXJzDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIA0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBfMTNfMV8yOF9mdW4ocGFyYW0sIHBhcmFtLCBwYXJhbSkgeyAndXNlIHN0cmljdCc7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionDeclaration whose FunctionBody is contained in strict code and the function has three identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-28-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0yOS1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25FeHByZXNzaW9uIHRoYXQgaXMgY29udGFpbmVkIGluIGV2YWwgc3RyaWN0IGNvZGUgYW5kIHRoZSBmdW5jdGlvbiBoYXMgdHdvIGlkZW50aWNhbCBwYXJhbWV0ZXJzDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoIid1c2Ugc3RyaWN0JzsgdmFyIF8xM18xXzI5X2Z1biA9IGZ1bmN0aW9uIChwYXJhbSwgcGFyYW0pIHsgfTsiKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionExpression that is contained in eval strict code and the function has two identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-29-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTMtMS5qcw0KICogQGRlc2NyaXB0aW9uIGV2YWwgYWxsb3dlZCBhcyBmdW5jdGlvbiBpZGVudGlmaWVyIGluIG5vbi1zdHJpY3QgZnVuY3Rpb24gZGVjbGFyYXRpb24NCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkNCnsNCiAgdHJ5IA0KICB7DQogICAgZXZhbCgiZnVuY3Rpb24gZXZhbCgpe307Iik7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiAgY2F0Y2ggKGUpIHsgIH0gIA0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"eval allowed as function identifier in non-strict function declaration","path":"TestCases/ch13/13.1/13.1-3-1.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTMtMi5qcw0KICogQGRlc2NyaXB0aW9uIGV2YWwgYWxsb3dlZCBhcyBmdW5jdGlvbiBpZGVudGlmaWVyIGluIG5vbi1zdHJpY3QgZnVuY3Rpb24gZXhwcmVzc2lvbg0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKQ0Kew0KICB0cnkgDQogIHsNCiAgICBldmFsKCIoZnVuY3Rpb24gZXZhbCgpe30pOyIpOw0KICAgIHJldHVybiB0cnVlOw0KICB9DQogIGNhdGNoIChlKSB7ICB9ICANCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"eval allowed as function identifier in non-strict function expression","path":"TestCases/ch13/13.1/13.1-3-2.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTMtNy5qcw0KICogQGRlc2NyaXB0aW9uIGFyZ3VtZW50cyBhbGxvd2VkIGFzIGZ1bmN0aW9uIGlkZW50aWZpZXIgaW4gbm9uLXN0cmljdCBmdW5jdGlvbiBkZWNsYXJhdGlvbg0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKQ0Kew0KICB0cnkgDQogIHsNCiAgICBldmFsKCJmdW5jdGlvbiBhcmd1bWVudHMgKCl7fTsiKTsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KICBjYXRjaCAoZSkgeyAgfSAgDQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"arguments allowed as function identifier in non-strict function declaration","path":"TestCases/ch13/13.1/13.1-3-7.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTMtOC5qcw0KICogQGRlc2NyaXB0aW9uIGFyZ3VtZW50cyBhbGxvd2VkIGFzIGZ1bmN0aW9uIGlkZW50aWZpZXIgaW4gbm9uLXN0cmljdCBmdW5jdGlvbiBleHByZXNzaW9uDQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpDQp7DQogIHRyeSANCiAgew0KICAgIGV2YWwoIihmdW5jdGlvbiBhcmd1bWVudHMgKCl7fSk7Iik7DQogICAgcmV0dXJuIHRydWU7DQogIH0NCiAgY2F0Y2ggKGUpIHsgIH0gIA0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"arguments allowed as function identifier in non-strict function expression","path":"TestCases/ch13/13.1/13.1-3-8.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtMy1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2FyZ3VtZW50cycgYXBwZWFycyB3aXRoaW4gYSBGb3JtYWxQYXJhbWV0ZXJMaXN0IG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoImZ1bmN0aW9uIF8xM18xXzNfZnVuKGFyZ3VtZW50cykgeyB9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionDeclaration","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-3-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0zMC1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25FeHByZXNzaW9uIHdob3NlIEZ1bmN0aW9uQm9keSBpcyBjb250YWluZWQgaW4gc3RyaWN0IGNvZGUgYW5kIHRoZSBmdW5jdGlvbiBoYXMgdHdvIGlkZW50aWNhbCBwYXJhbWV0ZXJzDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoInZhciBfMTNfMV8zMF9mdW4gPSBmdW5jdGlvbiAocGFyYW0sIHBhcmFtKSB7ICd1c2Ugc3RyaWN0JzsgfTsiKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionExpression whose FunctionBody is contained in strict code and the function has two identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-30-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0zMS1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25FeHByZXNzaW9uIHRoYXQgaXMgY29udGFpbmVkIGluIGV2YWwgc3RyaWN0IGNvZGUgYW5kIHRoZSBmdW5jdGlvbiBoYXMgdHdvIGlkZW50aWNhbCBwYXJhbWV0ZXJzLCB3aGljaCBhcmUgc2VwYXJhdGVkIGJ5IGEgdW5pcXVlIHBhcmFtZXRlciBuYW1lDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoIid1c2Ugc3RyaWN0JzsgdmFyIF8xM18xXzMxX2Z1biA9IGZ1bmN0aW9uIChwYXJhbTEsIHBhcmFtMiwgcGFyYW0xKSB7IH07Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionExpression that is contained in eval strict code and the function has two identical parameters, which are separated by a unique parameter name","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-31-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0zMi1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBpcyBjcmVhdGVkIHVzaW5nIGEgRnVuY3Rpb25FeHByZXNzaW9uIHdob3NlIEZ1bmN0aW9uQm9keSBpcyBzdHJpY3QgYW5kIHRoZSBmdW5jdGlvbiBoYXMgdHdvIGlkZW50aWNhbCBwYXJhbWV0ZXJzLCB3aGljaCBhcmUgc2VwYXJhdGVkIGJ5IGEgdW5pcXVlIHBhcmFtZXRlciBuYW1lDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoInZhciBfMTNfMV8zMl9mdW4gPSBmdW5jdGlvbiAocGFyYW0xLCBwYXJhbTIsIHBhcmFtMSkgeyAndXNlIHN0cmljdCc7IH07Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created using a FunctionExpression whose FunctionBody is strict and the function has two identical parameters, which are separated by a unique parameter name","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-32-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0zMy1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgZnVuY3Rpb24gaXMgY3JlYXRlZCB1c2luZyBhIEZ1bmN0aW9uRXhwcmVzc2lvbiB0aGF0IGlzIGNvbnRhaW5lZCBpbiBldmFsIHN0cmljdCBjb2RlIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHRocmVlIGlkZW50aWNhbCBwYXJhbWV0ZXJzDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoIid1c2Ugc3RyaWN0JzsgdmFyIF8xM18xXzMzX2Z1biA9IGZ1bmN0aW9uIChwYXJhbSwgcGFyYW0sIHBhcmFtKSB7IH07IikNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if function is created using a FunctionExpression that is contained in eval strict code and the function has three identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-33-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0zNC1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBoYXMgdGhyZWUgaWRlbnRpY2FsIHBhcmFtZXRlcnMgd2l0aCBhIHN0cmljdCBtb2RlIGJvZHkNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgidmFyIF8xM18xXzM0X2Z1biA9IGZ1bmN0aW9uIChwYXJhbSwgcGFyYW0sIHBhcmFtKSB7ICd1c2Ugc3RyaWN0JzsgfTsiKQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function declaration has three identical parameters with a strict mode body","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-34-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTM1LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdldmFsJyBvY2N1cnMgYXMgdGhlIGZ1bmN0aW9uIG5hbWUgb2YgYSBGdW5jdGlvbkRlY2xhcmF0aW9uIGluIHN0cmljdCBldmFsIGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiJ3VzZSBzdHJpY3QnOyBmdW5jdGlvbiBldmFsKCkgeyB9OyIpDQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"StrictMode - SyntaxError is thrown if 'eval' occurs as the function name of a FunctionDeclaration in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-35-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTM2LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdldmFsJyBvY2N1cnMgYXMgdGhlIGZ1bmN0aW9uIG5hbWUgb2YgYSBGdW5jdGlvbkRlY2xhcmF0aW9uIHdob3NlIEZ1bmN0aW9uQm9keSBpcyBpbiBzdHJpY3QgbW9kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBldmFsKCkgeyAndXNlIHN0cmljdCc7IH07IikNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"StrictMode - SyntaxError is thrown if 'eval' occurs as the function name of a FunctionDeclaration whose FunctionBody is in strict mode","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-36-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTM3LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdldmFsJyBvY2N1cnMgYXMgdGhlIElkZW50aWZpZXIgb2YgYSBGdW5jdGlvbkV4cHJlc3Npb24gaW4gc3RyaWN0IGV2YWwgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgXzEzXzFfMzdfcyA9IHt9Ow0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiJ3VzZSBzdHJpY3QnOyBfMTNfMV8zN19zLnggPSBmdW5jdGlvbiBldmFsKCkge307Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"StrictMode - SyntaxError is thrown if 'eval' occurs as the Identifier of a FunctionExpression in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-37-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTM4LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdldmFsJyBvY2N1cnMgYXMgdGhlIElkZW50aWZpZXIgb2YgYSBGdW5jdGlvbkV4cHJlc3Npb24gd2hvc2UgRnVuY3Rpb25Cb2R5IGlzIGNvbnRhaW5lZCBpbiBzdHJpY3QgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgXzEzXzFfMzhfcyA9IHt9Ow0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiXzEzXzFfMzhfcy54ID0gZnVuY3Rpb24gZXZhbCgpIHsndXNlIHN0cmljdCc7IH07Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"StrictMode - SyntaxError is thrown if 'eval' occurs as the Identifier of a FunctionExpression whose FunctionBody is contained in strict code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-38-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTM5LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdhcmd1bWVudHMnIG9jY3VycyBhcyB0aGUgZnVuY3Rpb24gbmFtZSBvZiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gaW4gc3RyaWN0IGV2YWwgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCIndXNlIHN0cmljdCc7IGZ1bmN0aW9uIGFyZ3VtZW50cygpIHsgfTsiKQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - SyntaxError is thrown if 'arguments' occurs as the function name of a FunctionDeclaration in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-39-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiB0aGUgSWRlbnRpZmllciAiZXZhbCIgb3IgdGhlIElkZW50aWZpZXIgImFyZ3VtZW50cyIgb2NjdXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3QNCiAqIG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBvciBGdW5jdGlvbkV4cHJlc3Npb24uDQogKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtNC1zLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2FyZ3VtZW50cycgYXBwZWFycyB3aXRoaW4gYSBGb3JtYWxQYXJhbWV0ZXJMaXN0IG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25FeHByZXNzaW9uDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICJ1c2Ugc3RyaWN0IjsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgidmFyIF8xM18xXzRfZnVuID0gZnVuY3Rpb24gKGFyZ3VtZW50cykgeyB9OyIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if the Identifier \"eval\" or the Identifier \"arguments\" occurs within a FormalParameterList\nof a strict mode FunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionExpression","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-4-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTQwLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdhcmd1bWVudHMnIG9jY3VycyBhcyB0aGUgSWRlbnRpZmllciBvZiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gd2hvc2UgRnVuY3Rpb25Cb2R5IGlzIGNvbnRhaW5lZCBpbiBzdHJpY3QgY29kZQ0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBhcmd1bWVudHMoKSB7ICd1c2Ugc3RyaWN0JzsgfTsiKQ0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionDeclaration whose FunctionBody is contained in strict code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-40-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTQxLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdhcmd1bWVudHMnIG9jY3VycyBhcyB0aGUgSWRlbnRpZmllciBvZiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBpbiBzdHJpY3QgZXZhbCBjb2RlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBfMTNfMV80MV9zID0ge307DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCIndXNlIHN0cmljdCc7IF8xM18xXzQxX3MueCA9IGZ1bmN0aW9uIGFyZ3VtZW50cygpIHt9OyIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionExpression in strict eval code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-41-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMS8xMy4xLTQyLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gU3ludGF4RXJyb3IgaXMgdGhyb3duIGlmICdhcmd1bWVudHMnIG9jY3VycyBhcyB0aGUgSWRlbnRpZmllciBvZiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiB3aG9zZSBGdW5jdGlvbkJvZHkgaXMgY29udGFpbmVkIGluIHN0cmljdCBjb2RlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBfMTNfMV80Ml9zID0ge307DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJfMTNfMV80Ml9zLnggPSBmdW5jdGlvbiBhcmd1bWVudHMoKSB7J3VzZSBzdHJpY3QnO307Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"StrictMode - SyntaxError is thrown if 'arguments' occurs as the Identifier of a FunctionExpression whose FunctionBody is contained in strict code","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-42-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gCi8qKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtNGdzLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgdGhlIGlkZW50aWZpZXIgJ2FyZ3VtZW50cycgYXBwZWFycyB3aXRoaW4gYSBGb3JtYWxQYXJhbWV0ZXJMaXN0IG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25FeHByZXNzaW9uDQogKiBAb25seVN0cmljdA0KICogQG5lZ2F0aXZlIF4oKD8hTm90RWFybHlFcnJvcikuKSokDQogKi8NCiJ1c2Ugc3RyaWN0IjsNCnRocm93IE5vdEVhcmx5RXJyb3I7DQp2YXIgXzEzXzFfNF9mdW4gPSBmdW5jdGlvbiAoYXJndW1lbnRzKSB7IH07","commentary":"","description":"Strict Mode - SyntaxError is thrown if the identifier 'arguments' appears within a FormalParameterList of a strict mode FunctionExpression","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-4gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS01LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiBhIGZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluICdzdHJpY3QgbW9kZScgdXNpbmcgYSBGdW5jdGlvbkRlY2xhcmF0aW9uIGFuZCB0aGUgZnVuY3Rpb24gaGFzIHR3byBpZGVudGljYWwgcGFyYW1ldGVycw0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQoNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGV2YWwoImZ1bmN0aW9uIF8xM18xXzVfZnVuKHBhcmFtLCBwYXJhbSkgeyB9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is declared in 'strict mode' using a FunctionDeclaration and the function has two identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-5-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gCi8qKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtNWdzLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBGdW5jdGlvbkRlY2xhcmF0aW9uIGhhcyB0d28gaWRlbnRpY2FsIHBhcmFtZXRlcnMNCiAqIEBvbmx5U3RyaWN0DQogKiBAbmVnYXRpdmUgXigoPyFOb3RFYXJseUVycm9yKS4pKiQNCiAqLw0KInVzZSBzdHJpY3QiOw0KdGhyb3cgTm90RWFybHlFcnJvcjsNCmZ1bmN0aW9uIF8xM18xXzVfZnVuKHBhcmFtLCBwYXJhbSkgeyB9","commentary":"","description":"Strict Mode - SyntaxError is thrown if a FunctionDeclaration has two identical parameters","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-5gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS02LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiBhIGZ1bmN0aW9uIGlzIGNyZWF0ZWQgaW4gJ3N0cmljdCBtb2RlJyB1c2luZyBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gYW5kIHRoZSBmdW5jdGlvbiBoYXMgdHdvIGlkZW50aWNhbCBwYXJhbWV0ZXJzLCB3aGljaCBhcmUgc2VwYXJhdGVkIGJ5IGEgdW5pcXVlIHBhcmFtZXRlciBuYW1lDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgICJ1c2Ugc3RyaWN0IjsNCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgZXZhbCgiZnVuY3Rpb24gXzEzXzFfNl9mdW4ocGFyYW0xLCBwYXJhbTIsIHBhcmFtMSkgeyB9Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionDeclaration and the function has two identical parameters, which are separated by a unique parameter name","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-6-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS03LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiBhIGZ1bmN0aW9uIGlzIGNyZWF0ZWQgaW4gJ3N0cmljdCBtb2RlJyB1c2luZyBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gYW5kIHRoZSBmdW5jdGlvbiBoYXMgdGhyZWUgaWRlbnRpY2FsIHBhcmFtZXRlcnMNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJmdW5jdGlvbiBfMTNfMV83X2Z1bihwYXJhbSwgcGFyYW0sIHBhcmFtKSB7IH0iKTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfSBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcjsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionDeclaration and the function has three identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-7-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS04LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiBhIGZ1bmN0aW9uIGlzIGNyZWF0ZWQgaW4gJ3N0cmljdCBtb2RlJyB1c2luZyBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBhbmQgdGhlIGZ1bmN0aW9uIGhhcyB0d28gaWRlbnRpY2FsIHBhcmFtZXRlcnMNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJ2YXIgXzEzXzFfOF9mdW4gPSBmdW5jdGlvbiAocGFyYW0sIHBhcmFtKSB7IH07Iik7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0gY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgU3ludGF4RXJyb3I7DQogICAgICAgIH0NCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionExpression and the function has two identical parameters","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-8-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gCi8qKg0KICogQHBhdGggY2gxMy8xMy4xLzEzLjEtOGdzLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTeW50YXhFcnJvciBpcyB0aHJvd24gaWYgYSBGdW5jdGlvbkV4cHJlc3Npb24gaGFzIHR3byBpZGVudGljYWwgcGFyYW1ldGVycw0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBeKCg/IU5vdEVhcmx5RXJyb3IpLikqJA0KICovDQoidXNlIHN0cmljdCI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KdmFyIF8xM18xXzhfZnVuID0gZnVuY3Rpb24gKHBhcmFtLCBwYXJhbSkgeyB9Ow==","commentary":"","description":"Strict Mode - SyntaxError is thrown if a FunctionExpression has two identical parameters","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-8gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIFJlZmVyIDEzLjE7IA0KICogSXQgaXMgYSBTeW50YXhFcnJvciBpZiBhbnkgSWRlbnRpZmllciB2YWx1ZSBvY2N1cnMgbW9yZSB0aGFuIG9uY2Ugd2l0aGluIGEgRm9ybWFsUGFyYW1ldGVyTGlzdCBvZiBhIHN0cmljdCBtb2RlDQogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIG9yIEZ1bmN0aW9uRXhwcmVzc2lvbi4NCiAqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS05LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiBhIGZ1bmN0aW9uIGlzIGNyZWF0ZWQgaW4gJ3N0cmljdCBtb2RlJyB1c2luZyBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBhbmQgdGhlIGZ1bmN0aW9uIGhhcyB0d28gaWRlbnRpY2FsIHBhcmFtZXRlcnMsIHdoaWNoIGFyZSBzZXBhcmF0ZWQgYnkgYSB1bmlxdWUgcGFyYW1ldGVyIG5hbWUNCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBldmFsKCJ2YXIgXzEzXzFfOV9mdW4gPSBmdW5jdGlvbiAocGFyYW0xLCBwYXJhbTIsIHBhcmFtMSkgeyB9OyIpOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"Refer 13.1;\nIt is a SyntaxError if any Identifier value occurs more than once within a FormalParameterList of a strict mode\nFunctionDeclaration or FunctionExpression.","description":"Strict Mode - SyntaxError is thrown if a function is created in 'strict mode' using a FunctionExpression and the function has two identical parameters, which are separated by a unique parameter name","onlyStrict":"","path":"TestCases/ch13/13.1/13.1-9-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTEtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSAgV3JpdGluZyBvciByZWFkaW5nIGZyb20gYSBwcm9wZXJ0eSBuYW1lZCAnY2FsbGVyJyBvZiBmdW5jdGlvbiBvYmplY3RzIGlzIGFsbG93ZWQgdW5kZXIgYm90aCBzdHJpY3QgYW5kIG5vcm1hbCBtb2Rlcy4NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgInVzZSBzdHJpY3QiOw0KDQogICAgICAgIHZhciBmb28gPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICB0aGlzLmNhbGxlciA9IDEyOw0KICAgICAgICB9DQogICAgICAgIHZhciBvYmogPSBuZXcgZm9vKCk7DQogICAgICAgIHJldHVybiBvYmouY2FsbGVyID09PSAxMjsNCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"StrictMode - Writing or reading from a property named 'caller' of function objects is allowed under both strict and normal modes.","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-1-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTEwLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gd3JpdGluZyBhIHByb3BlcnR5IG5hbWVkICdjYWxsZXInIG9mIGZ1bmN0aW9uIG9iamVjdHMgaXMgbm90IGFsbG93ZWQgb3V0c2lkZSB0aGUgZnVuY3Rpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgZm9vID0gRnVuY3Rpb24oIid1c2Ugc3RyaWN0JzsiKTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGZvby5jYWxsZXIgPSA0MTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBUeXBlRXJyb3I7DQogICAgICAgIH0NCn0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTs=","commentary":"","description":"StrictMode - writing a property named 'caller' of function objects is not allowed outside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-10-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTExLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gZW51bWVyYXRpbmcgb3ZlciBhIGZ1bmN0aW9uIG9iamVjdCBsb29raW5nIGZvciAnY2FsbGVyJyBmYWlscyBvdXRzaWRlIG9mIHRoZSBmdW5jdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBmb28gPSBGdW5jdGlvbigiJ3VzZSBzdHJpY3QnOyIpOw0KICAgICAgICANCiAgICAgICAgZm9yICh2YXIgdGVtcEluZGV4IGluIGZvbykgew0KICAgICAgICAgICAgaWYgKHRlbXBJbmRleCA9PT0gImNhbGxlciIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRydWU7DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - enumerating over a function object looking for 'caller' fails outside of the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-11-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTEyLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gZW51bWVyYXRpbmcgb3ZlciBhIGZ1bmN0aW9uIG9iamVjdCBsb29raW5nIGZvciAnY2FsbGVyJyBmYWlscyBpbnNpZGUgdGhlIGZ1bmN0aW9uDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHZhciBmb28gPSBGdW5jdGlvbigiJ3VzZSBzdHJpY3QnOyBmb3IgKHZhciB0ZW1wSW5kZXggaW4gdGhpcykge2lmICh0ZW1wSW5kZXg9PT1cImNhbGxlclwiKSB7cmV0dXJuIGZhbHNlO319OyByZXR1cm4gdHJ1ZTsiKTsNCiAgICAgICAgICAgIHJldHVybiBmb28oKTsNCn0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTs=","commentary":"","description":"StrictMode - enumerating over a function object looking for 'caller' fails inside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-12-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTEzLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gcmVhZGluZyBhIHByb3BlcnR5IG5hbWVkICdhcmd1bWVudHMnIG9mIGZ1bmN0aW9uIG9iamVjdHMgaXMgbm90IGFsbG93ZWQgb3V0c2lkZSB0aGUgZnVuY3Rpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgZm9vID0gbmV3IEZ1bmN0aW9uKCIndXNlIHN0cmljdCc7Iik7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgdGVtcCA9IGZvby5hcmd1bWVudHM7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - reading a property named 'arguments' of function objects is not allowed outside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-13-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTE0LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gd3JpdGluZyBhIHByb3BlcnR5IG5hbWVkICdhcmd1bWVudHMnIG9mIGZ1bmN0aW9uIG9iamVjdHMgaXMgbm90IGFsbG93ZWQgb3V0c2lkZSB0aGUgZnVuY3Rpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgZm9vID0gbmV3IEZ1bmN0aW9uKCIndXNlIHN0cmljdCc7Iik7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBmb28uYXJndW1lbnRzID0gNDE7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - writing a property named 'arguments' of function objects is not allowed outside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-14-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTE1LTEuanMNCiAqIEBkZXNjcmlwdGlvbiBGdW5jdGlvbiBPYmplY3QgaGFzIGxlbmd0aCBhcyBpdHMgb3duIHByb3BlcnR5IGFuZCBkb2VzIG5vdCBpbnZva2UgdGhlIHNldHRlciBkZWZpbmVkIG9uIEZ1bmN0aW9uLnByb3RvdHlwZS5sZW5ndGggKFN0ZXAgMTUpDQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHZhciBmdW4gPSBmdW5jdGlvbiAoeCwgeSkgeyB9Ow0KDQogICAgICAgICAgICB2YXIgdmVyaWZ5VmFsdWUgPSBmYWxzZTsNCiAgICAgICAgICAgIHZlcmlmeVZhbHVlID0gKGZ1bi5oYXNPd25Qcm9wZXJ0eSgibGVuZ3RoIikgJiYgZnVuLmxlbmd0aCA9PT0gMik7DQoNCiAgICAgICAgICAgIHZhciB2ZXJpZnlXcml0YWJsZSA9IGZhbHNlOw0KICAgICAgICAgICAgZnVuLmxlbmd0aCA9IDEwMDE7DQogICAgICAgICAgICB2ZXJpZnlXcml0YWJsZSA9IChmdW4ubGVuZ3RoID09PSAxMDAxKTsNCg0KICAgICAgICAgICAgdmFyIHZlcmlmeUVudW1lcmFibGUgPSBmYWxzZTsNCiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gZnVuKSB7DQogICAgICAgICAgICAgICAgaWYgKHAgPT09ICJsZW5ndGgiKSB7DQogICAgICAgICAgICAgICAgICAgIHZlcmlmeUVudW1lcmFibGUgPSB0cnVlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgdmFyIHZlcmlmeUNvbmZpZ3VyYWJsZSA9IGZhbHNlOw0KICAgICAgICAgICAgZGVsZXRlIGZ1bi5sZW5ndGg7DQogICAgICAgICAgICB2ZXJpZnlDb25maWd1cmFibGUgPSBmdW4uaGFzT3duUHJvcGVydHkoImxlbmd0aCIpOw0KDQogICAgICAgICAgICByZXR1cm4gdmVyaWZ5VmFsdWUgJiYgIXZlcmlmeVdyaXRhYmxlICYmICF2ZXJpZnlFbnVtZXJhYmxlICYmIHZlcmlmeUNvbmZpZ3VyYWJsZTsNCiAgICAgICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"Function Object has length as its own property and does not invoke the setter defined on Function.prototype.length (Step 15)","path":"TestCases/ch13/13.2/13.2-15-1.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTE1LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gZW51bWVyYXRpbmcgb3ZlciBhIGZ1bmN0aW9uIG9iamVjdCBsb29raW5nIGZvciAnYXJndW1lbnRzJyBmYWlscyBvdXRzaWRlIG9mIHRoZSBmdW5jdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBmb28gPSBuZXcgRnVuY3Rpb24oIid1c2Ugc3RyaWN0JzsiKTsNCiAgICAgICAgDQogICAgICAgIGZvciAodmFyIHRlbXBJbmRleCBpbiBmb28pIHsNCiAgICAgICAgICAgIGlmICh0ZW1wSW5kZXggPT09ICJhcmd1bWVudHMiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0cnVlOw0KfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw==","commentary":"","description":"StrictMode - enumerating over a function object looking for 'arguments' fails outside of the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-15-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTE2LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gZW51bWVyYXRpbmcgb3ZlciBhIGZ1bmN0aW9uIG9iamVjdCBsb29raW5nIGZvciAnYXJndW1lbnRzJyBmYWlscyBpbnNpZGUgdGhlIGZ1bmN0aW9uDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHZhciBmb28gPSBuZXcgRnVuY3Rpb24oIid1c2Ugc3RyaWN0JzsgZm9yICh2YXIgdGVtcEluZGV4IGluIHRoaXMpIHtpZiAodGVtcEluZGV4PT09XCJhcmd1bWVudHNcIikge3JldHVybiBmYWxzZTt9fTsgcmV0dXJuIHRydWU7Iik7DQogICAgICAgICAgICByZXR1cm4gZm9vKCk7DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - enumerating over a function object looking for 'arguments' fails inside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-16-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTE3LTEuanMNCiAqIEBkZXNjcmlwdGlvbiBGdW5jdGlvbiBPYmplY3QgaGFzICdjb25zdHJ1Y3RvcicgYXMgaXRzIG93biBwcm9wZXJ0eSwgaXQgaXMgbm90IGVudW1lcmFibGUgYW5kIGRvZXMgbm90IGludm9rZSB0aGUgc2V0dGVyIGRlZmluZWQgb24gRnVuY3Rpb24ucHJvdG90eXBlLmNvbnN0cnVjdG9yIChTdGVwIDE3KQ0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCAiY29uc3RydWN0b3IiKTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciBnZXRGdW5jID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgICAgIHJldHVybiAxMDA7DQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICB2YXIgZGF0YSA9ICJkYXRhIjsNCiAgICAgICAgICAgIHZhciBzZXRGdW5jID0gZnVuY3Rpb24gKHZhbHVlKSB7DQogICAgICAgICAgICAgICAgZGF0YSA9IHZhbHVlOw0KICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICJjb25zdHJ1Y3RvciIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGdldEZ1bmMsDQogICAgICAgICAgICAgICAgc2V0OiBzZXRGdW5jLA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciBmdW4gPSBmdW5jdGlvbiAoKSB7fTsNCg0KICAgICAgICAgICAgdmFyIHZlcmlmeVZhbHVlID0gZmFsc2U7DQogICAgICAgICAgICB2ZXJpZnlWYWx1ZSA9IHR5cGVvZiBmdW4ucHJvdG90eXBlLmNvbnN0cnVjdG9yID09PSAiZnVuY3Rpb24iOw0KDQogICAgICAgICAgICB2YXIgdmVyaWZ5RW51bWVyYWJsZSA9IGZhbHNlOw0KICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBmdW4ucHJvdG90eXBlKSB7DQogICAgICAgICAgICAgICAgaWYgKHAgPT09ICJjb25zdHJ1Y3RvciIgJiYgZnVuLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgiY29uc3RydWN0b3IiKSkgew0KICAgICAgICAgICAgICAgICAgICB2ZXJpZnlFbnVtZXJhYmxlID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHZhciB2ZXJpZnlXcml0YWJsZSA9IGZhbHNlOw0KICAgICAgICAgICAgZnVuLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IDEyOw0KICAgICAgICAgICAgdmVyaWZ5V3JpdGFibGUgPSAoZnVuLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9PT0gMTIpOw0KDQogICAgICAgICAgICB2YXIgdmVyaWZ5Q29uZmlndXJhYmxlID0gZmFsc2U7DQogICAgICAgICAgICBkZWxldGUgZnVuLnByb3RvdHlwZS5jb25zdHJ1Y3RvcjsNCiAgICAgICAgICAgIHZlcmlmeUNvbmZpZ3VyYWJsZSA9IGZ1bi5oYXNPd25Qcm9wZXJ0eSgiY29uc3RydWN0b3IiKTsNCg0KICAgICAgICAgICAgcmV0dXJuIHZlcmlmeVZhbHVlICYmIHZlcmlmeVdyaXRhYmxlICYmICF2ZXJpZnlFbnVtZXJhYmxlICYmICF2ZXJpZnlDb25maWd1cmFibGUgJiYgZGF0YSA9PT0gImRhdGEiOw0KICAgICAgICB9IGZpbmFsbHkgew0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5wcm90b3R5cGUsICJjb25zdHJ1Y3RvciIsIGRlc2MpOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"Function Object has 'constructor' as its own property, it is not enumerable and does not invoke the setter defined on Function.prototype.constructor (Step 17)","path":"TestCases/ch13/13.2/13.2-17-1.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTE3LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gcmVhZGluZyBhIHByb3BlcnR5IG5hbWVkICdhcmd1bWVudHMnIG9mIGZ1bmN0aW9uIG9iamVjdHMgaXMgbm90IGFsbG93ZWQgb3V0c2lkZSB0aGUgZnVuY3Rpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgZm9vID0gRnVuY3Rpb24oIid1c2Ugc3RyaWN0JzsiKTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIHZhciB0ZW1wID0gZm9vLmFyZ3VtZW50czsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBUeXBlRXJyb3I7DQogICAgICAgIH0NCn0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTs=","commentary":"","description":"StrictMode - reading a property named 'arguments' of function objects is not allowed outside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-17-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTE4LTEuanMNCiAqIEBkZXNjcmlwdGlvbiBGdW5jdGlvbiBPYmplY3QgaGFzICdwcm90b3R5cGUnIGFzIGl0cyBvd24gcHJvcGVydHksIGl0IGlzIG5vdCBlbnVtZXJhYmxlIGFuZCBkb2VzIG5vdCBpbnZva2UgdGhlIHNldHRlciBkZWZpbmVkIG9uIEZ1bmN0aW9uLnByb3RvdHlwZSAoU3RlcCAxOCkNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgdmFyIGdldEZ1bmMgPSBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIDEwMDsNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIHZhciBkYXRhID0gImRhdGEiOw0KICAgICAgICAgICAgdmFyIHNldEZ1bmMgPSBmdW5jdGlvbiAodmFsdWUpIHsNCiAgICAgICAgICAgICAgICBkYXRhID0gdmFsdWU7DQogICAgICAgICAgICB9Ow0KICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZ1bmN0aW9uLnByb3RvdHlwZSwgInByb3RvdHlwZSIsIHsNCiAgICAgICAgICAgICAgICBnZXQ6IGdldEZ1bmMsDQogICAgICAgICAgICAgICAgc2V0OiBzZXRGdW5jLA0KICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQ0KICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgIHZhciBmdW4gPSBmdW5jdGlvbiAoKSB7IH07DQoNCiAgICAgICAgICAgIHZhciB2ZXJpZnlWYWx1ZSA9IGZhbHNlOw0KICAgICAgICAgICAgdmVyaWZ5VmFsdWUgPSAoZnVuLnByb3RvdHlwZSAhPT0gMTAwICYmIGZ1bi5wcm90b3R5cGUudG9TdHJpbmcoKSA9PT0gIltvYmplY3QgT2JqZWN0XSIpOw0KDQogICAgICAgICAgICB2YXIgdmVyaWZ5RW51bWVyYWJsZSA9IGZhbHNlOw0KICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBmdW4pIHsNCiAgICAgICAgICAgICAgICBpZiAocCA9PT0gInByb3RvdHlwZSIgJiYgZnVuLmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKSkgew0KICAgICAgICAgICAgICAgICAgICB2ZXJpZnlFbnVtZXJhYmxlID0gdHJ1ZTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHZhciB2ZXJpZnlDb25maWd1cmFibGUgPSBmYWxzZTsNCiAgICAgICAgICAgIGRlbGV0ZSBmdW4ucHJvdG90eXBlOw0KICAgICAgICAgICAgdmVyaWZ5Q29uZmlndXJhYmxlID0gZnVuLmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKTsNCg0KICAgICAgICAgICAgdmFyIHZlcmlmeVdyaXRhYmxlID0gZmFsc2U7DQogICAgICAgICAgICBmdW4ucHJvdG90eXBlID0gMTINCiAgICAgICAgICAgIHZlcmlmeVdyaXRhYmxlID0gKGZ1bi5wcm90b3R5cGUgPT09IDEyKTsNCg0KICAgICAgICAgICAgcmV0dXJuIHZlcmlmeVZhbHVlICYmIHZlcmlmeVdyaXRhYmxlICYmICF2ZXJpZnlFbnVtZXJhYmxlICYmIHZlcmlmeUNvbmZpZ3VyYWJsZSAmJiBkYXRhID09PSAiZGF0YSI7DQogICAgICAgIH0gZmluYWxseSB7DQogICAgICAgICAgICBkZWxldGUgRnVuY3Rpb24ucHJvdG90eXBlLnByb3RvdHlwZTsNCiAgICAgICAgfQ0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"Function Object has 'prototype' as its own property, it is not enumerable and does not invoke the setter defined on Function.prototype (Step 18)","path":"TestCases/ch13/13.2/13.2-18-1.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTE4LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gd3JpdGluZyBhIHByb3BlcnR5IG5hbWVkICdhcmd1bWVudHMnIG9mIGZ1bmN0aW9uIG9iamVjdHMgaXMgbm90IGFsbG93ZWQgb3V0c2lkZSB0aGUgZnVuY3Rpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgZm9vID0gRnVuY3Rpb24oIid1c2Ugc3RyaWN0JzsiKTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGZvby5hcmd1bWVudHMgPSA0MTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBUeXBlRXJyb3I7DQogICAgICAgIH0NCn0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTs=","commentary":"","description":"StrictMode - writing a property named 'arguments' of function objects is not allowed outside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-18-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAxMiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTE5LWItM2dzLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0TW9kZSAtIGVycm9yIGlzIHRocm93biB3aGVuIGFzc2lnbiBhIHZhbHVlIHRvIHRoZSAnY2FsbGVyJyBwcm9wZXJ0eSBvZiBhIGZ1bmN0aW9uIG9iamVjdA0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBOb3RFYXJseUVycm9yDQogKi8NCiJ1c2Ugc3RyaWN0IjsNCnRocm93IE5vdEVhcmx5RXJyb3I7DQpmdW5jdGlvbiBfMTNfMl8xOV9iXzNfZ3MoKSB7fQ0KXzEzXzJfMTlfYl8zX2dzLmNhbGxlciA9IDE7DQo=","commentary":"","description":"StrictMode - error is thrown when assign a value to the 'caller' property of a function object","negative":"NotEarlyError","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-19-b-3gs.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTE5LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gZW51bWVyYXRpbmcgb3ZlciBhIGZ1bmN0aW9uIG9iamVjdCBsb29raW5nIGZvciAnYXJndW1lbnRzJyBmYWlscyBvdXRzaWRlIG9mIHRoZSBmdW5jdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBmb28gPSBGdW5jdGlvbigiJ3VzZSBzdHJpY3QnOyIpOw0KICAgICAgICANCiAgICAgICAgZm9yICh2YXIgdGVtcEluZGV4IGluIGZvbykgew0KICAgICAgICAgICAgaWYgKHRlbXBJbmRleCA9PT0gImFyZ3VtZW50cyIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRydWU7DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - enumerating over a function object looking for 'arguments' fails outside of the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-19-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTItcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBBIFR5cGVFcnJvciBpcyB0aHJvd24gd2hlbiBhIHN0cmljdCBtb2RlIGNvZGUgd3JpdGVzIHRvIHByb3BlcnRpZXMgbmFtZWQgJ2NhbGxlcicgb2YgZnVuY3Rpb24gaW5zdGFuY2VzLg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgZm9vID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZm9vLmNhbGxlciA9IDIwOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIGV4IGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - A TypeError is thrown when a strict mode code writes to properties named 'caller' of function instances.","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-2-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTIwLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gZW51bWVyYXRpbmcgb3ZlciBhIGZ1bmN0aW9uIG9iamVjdCBsb29raW5nIGZvciAnYXJndW1lbnRzJyBmYWlscyBpbnNpZGUgdGhlIGZ1bmN0aW9uDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHZhciBmb28gPSBGdW5jdGlvbigiJ3VzZSBzdHJpY3QnOyBmb3IgKHZhciB0ZW1wSW5kZXggaW4gdGhpcykge2lmICh0ZW1wSW5kZXg9PT1cImFyZ3VtZW50c1wiKSB7cmV0dXJuIGZhbHNlO319OyByZXR1cm4gdHJ1ZTsiKTsNCiAgICAgICAgICAgIHJldHVybiBmb28oKTsNCn0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTs=","commentary":"","description":"StrictMode - enumerating over a function object looking for 'arguments' fails inside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-20-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTIxLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gcmVhZGluZyBhIHByb3BlcnR5IG5hbWVkICdjYWxsZXInIG9mIGZ1bmN0aW9uIG9iamVjdHMgaXMgbm90IGFsbG93ZWQgb3V0c2lkZSB0aGUgZnVuY3Rpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBmb28gKCkgeyJ1c2Ugc3RyaWN0Ijt9DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgdGVtcCA9IGZvby5jYWxsZXI7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - reading a property named 'caller' of function objects is not allowed outside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-21-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTIyLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gd3JpdGluZyBhIHByb3BlcnR5IG5hbWVkICdjYWxsZXInIG9mIGZ1bmN0aW9uIG9iamVjdHMgaXMgbm90IGFsbG93ZWQgb3V0c2lkZSB0aGUgZnVuY3Rpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBmb28gKCkgeyJ1c2Ugc3RyaWN0Ijt9DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBmb28uY2FsbGVyID0gNDE7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - writing a property named 'caller' of function objects is not allowed outside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-22-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTIzLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gZW51bWVyYXRpbmcgb3ZlciBhIGZ1bmN0aW9uIG9iamVjdCBsb29raW5nIGZvciAnY2FsbGVyJyBmYWlscyBvdXRzaWRlIG9mIHRoZSBmdW5jdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGZvbyAoKSB7InVzZSBzdHJpY3QiO30NCiAgICAgICAgZm9yICh2YXIgdGVtcEluZGV4IGluIGZvbykgew0KICAgICAgICAgICAgaWYgKHRlbXBJbmRleCA9PT0gImNhbGxlciIpIHsNCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgcmV0dXJuIHRydWU7DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - enumerating over a function object looking for 'caller' fails outside of the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-23-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTI0LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gZW51bWVyYXRpbmcgb3ZlciBhIGZ1bmN0aW9uIG9iamVjdCBsb29raW5nIGZvciAnY2FsbGVyJyBmYWlscyBpbnNpZGUgdGhlIGZ1bmN0aW9uDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIGZvbyAoKSB7DQogICAgICAgICAgICAgICAgInVzZSBzdHJpY3QiOyANCiAgICAgICAgICAgICAgICBmb3IgKHZhciB0ZW1wSW5kZXggaW4gdGhpcykgew0KICAgICAgICAgICAgICAgICAgICBpZiAodGVtcEluZGV4PT09ImNhbGxlciIpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gDQogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICAgICAgICB9DQogICAgICAgICAgICByZXR1cm4gZm9vKCk7DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - enumerating over a function object looking for 'caller' fails inside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-24-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTI1LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gcmVhZGluZyBhIHByb3BlcnR5IG5hbWVkICdhcmd1bWVudHMnIG9mIGZ1bmN0aW9uIG9iamVjdHMgaXMgbm90IGFsbG93ZWQgb3V0c2lkZSB0aGUgZnVuY3Rpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBmb28gKCkgeyJ1c2Ugc3RyaWN0Ijt9DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgdGVtcCA9IGZvby5hcmd1bWVudHM7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - reading a property named 'arguments' of function objects is not allowed outside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-25-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTI2LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gd3JpdGluZyBhIHByb3BlcnR5IG5hbWVkICdhcmd1bWVudHMnIG9mIGZ1bmN0aW9uIG9iamVjdHMgaXMgbm90IGFsbG93ZWQgb3V0c2lkZSB0aGUgZnVuY3Rpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICBmdW5jdGlvbiBmb28gKCkgeyJ1c2Ugc3RyaWN0Ijt9DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICBmb28uYXJndW1lbnRzID0gNDE7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - writing a property named 'arguments' of function objects is not allowed outside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-26-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTI3LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gZW51bWVyYXRpbmcgb3ZlciBhIGZ1bmN0aW9uIG9iamVjdCBsb29raW5nIGZvciAnYXJndW1lbnRzJyBmYWlscyBvdXRzaWRlIG9mIHRoZSBmdW5jdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIGZ1bmN0aW9uIGZvbyAoKSB7InVzZSBzdHJpY3QiO30NCiAgICAgICAgDQogICAgICAgIGZvciAodmFyIHRlbXBJbmRleCBpbiBmb28pIHsNCiAgICAgICAgICAgIGlmICh0ZW1wSW5kZXggPT09ICJhcmd1bWVudHMiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0cnVlOw0KfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw==","commentary":"","description":"StrictMode - enumerating over a function object looking for 'arguments' fails outside of the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-27-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTI4LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gZW51bWVyYXRpbmcgb3ZlciBhIGZ1bmN0aW9uIG9iamVjdCBsb29raW5nIGZvciAnYXJndW1lbnRzJyBmYWlscyBpbnNpZGUgdGhlIGZ1bmN0aW9uDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIGZvbygpIHsNCiAgICAgICAgICAgICAgICAidXNlIHN0cmljdCI7IA0KICAgICAgICAgICAgICAgIGZvciAodmFyIHRlbXBJbmRleCBpbiB0aGlzKSB7DQogICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wSW5kZXg9PT0iYXJndW1lbnRzIikgew0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHJldHVybiBmb28oKTsNCn0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTs=","commentary":"","description":"StrictMode - enumerating over a function object looking for 'arguments' fails inside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-28-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTI5LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gcHJvcGVydHkgbmFtZWQgJ2NhbGxlcicgb2YgZnVuY3Rpb24gb2JqZWN0cyBpcyBub3QgY29uZmlndXJhYmxlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gZm9vKCkgeyJ1c2Ugc3RyaWN0Ijt9DQogICAgICAgIHJldHVybiAhIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZm9vLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhbGxlciIpLmNvbmZpZ3VyYWJsZTsNCn0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTs=","commentary":"","description":"StrictMode - property named 'caller' of function objects is not configurable","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-29-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTMtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBXcml0aW5nIG9yIHJlYWRpbmcgZnJvbSBhIHByb3BlcnR5IG5hbWVkICdhcmd1bWVudHMnIG9mIGZ1bmN0aW9uIG9iamVjdHMgaXMgYWxsb3dlZCB1bmRlciBib3RoIHN0cmljdCBhbmQgbm9ybWFsIG1vZGVzLg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQoNCiAgICAgICAgdmFyIGZvbyA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIHRoaXMuYXJndW1lbnRzID0gMTI7DQogICAgICAgIH0gDQogICAgICAgIHZhciBvYmogPSBuZXcgZm9vKCk7DQogICAgICAgIHJldHVybiBvYmouYXJndW1lbnRzID09PSAxMjsNCiAgICB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"StrictMode - Writing or reading from a property named 'arguments' of function objects is allowed under both strict and normal modes.","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-3-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTMwLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gcHJvcGVydHkgbmFtZWQgJ2NhbGxlcicgb2YgZnVuY3Rpb24gb2JqZWN0cyBpcyBub3QgY29uZmlndXJhYmxlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuICEgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihGdW5jdGlvbigiJ3VzZSBzdHJpY3QnOyIpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhbGxlciIpLmNvbmZpZ3VyYWJsZTsNCn0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTs=","commentary":"","description":"StrictMode - property named 'caller' of function objects is not configurable","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-30-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTMxLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gcHJvcGVydHkgbmFtZWQgJ2NhbGxlcicgb2YgZnVuY3Rpb24gb2JqZWN0cyBpcyBub3QgY29uZmlndXJhYmxlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuICEgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuZXcgRnVuY3Rpb24oIid1c2Ugc3RyaWN0JzsiKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYWxsZXIiKS5jb25maWd1cmFibGU7DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - property named 'caller' of function objects is not configurable","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-31-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTMyLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gcHJvcGVydHkgbmFtZWQgJ2NhbGxlcicgb2YgZnVuY3Rpb24gb2JqZWN0cyBpcyBub3QgY29uZmlndXJhYmxlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGZ1bmNFeHByID0gZnVuY3Rpb24gKCkgeyAidXNlIHN0cmljdCI7fTsNCiAgICAgICAgcmV0dXJuICEgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihmdW5jRXhwciwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYWxsZXIiKS5jb25maWd1cmFibGU7DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - property named 'caller' of function objects is not configurable","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-32-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTMzLXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gcHJvcGVydHkgbmFtZWQgJ2FyZ3VtZW50cycgb2YgZnVuY3Rpb24gb2JqZWN0cyBpcyBub3QgY29uZmlndXJhYmxlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgZnVuY3Rpb24gZm9vKCkgeyJ1c2Ugc3RyaWN0Ijt9DQogICAgICAgIHJldHVybiAhIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZm9vLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyZ3VtZW50cyIpLmNvbmZpZ3VyYWJsZTsNCn0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTs=","commentary":"","description":"StrictMode - property named 'arguments' of function objects is not configurable","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-33-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTM0LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gcHJvcGVydHkgbmFtZWQgJ2FyZ3VtZW50cycgb2YgZnVuY3Rpb24gb2JqZWN0cyBpcyBub3QgY29uZmlndXJhYmxlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuICEgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihGdW5jdGlvbigiJ3VzZSBzdHJpY3QnOyIpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyZ3VtZW50cyIpLmNvbmZpZ3VyYWJsZTsNCn0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTs=","commentary":"","description":"StrictMode - property named 'arguments' of function objects is not configurable","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-34-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTM1LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gcHJvcGVydHkgbmFtZWQgJ2FyZ3VtZW50cycgb2YgZnVuY3Rpb24gb2JqZWN0cyBpcyBub3QgY29uZmlndXJhYmxlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgcmV0dXJuICEgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuZXcgRnVuY3Rpb24oIid1c2Ugc3RyaWN0JzsiKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudHMiKS5jb25maWd1cmFibGU7DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - property named 'arguments' of function objects is not configurable","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-35-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTM2LXMuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gcHJvcGVydHkgbmFtZWQgJ2FyZ3VtZW50cycgb2YgZnVuY3Rpb24gb2JqZWN0cyBpcyBub3QgY29uZmlndXJhYmxlDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgdmFyIGZ1bmNFeHByID0gZnVuY3Rpb24gKCkgeyAidXNlIHN0cmljdCI7fTsNCiAgICAgICAgcmV0dXJuICEgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihmdW5jRXhwciwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudHMiKS5jb25maWd1cmFibGU7DQp9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7","commentary":"","description":"StrictMode - property named 'arguments' of function objects is not configurable","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-36-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTQtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBBIFR5cGVFcnJvciBpcyB0aHJvd24gd2hlbiBhIGNvZGUgaW4gc3RyaWN0IG1vZGUgdHJpZXMgdG8gd3JpdGUgdG8gJ2FyZ3VtZW50cycgb2YgZnVuY3Rpb24gaW5zdGFuY2VzLg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICAidXNlIHN0cmljdCI7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgZm9vID0gZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZm9vLmFyZ3VtZW50cyA9IDIwOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9IGNhdGNoIChleCkgew0KICAgICAgICAgICAgcmV0dXJuIGV4IGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - A TypeError is thrown when a code in strict mode tries to write to 'arguments' of function instances.","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-4-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTUtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSByZWFkaW5nIGEgcHJvcGVydHkgbmFtZWQgJ2NhbGxlcicgb2YgZnVuY3Rpb24gb2JqZWN0cyBpcyBub3QgYWxsb3dlZCBvdXRzaWRlIHRoZSBmdW5jdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KICAgICAgICB2YXIgZm9vID0gbmV3IEZ1bmN0aW9uKCIndXNlIHN0cmljdCc7Iik7DQogICAgICAgIHRyeSB7DQogICAgICAgICAgICB2YXIgdGVtcCA9IGZvby5jYWxsZXI7DQogICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgIH0NCiAgICAgICAgY2F0Y2ggKGUpIHsNCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yOw0KICAgICAgICB9DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - reading a property named 'caller' of function objects is not allowed outside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-5-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTYtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSB3cml0aW5nIGEgcHJvcGVydHkgbmFtZWQgJ2NhbGxlcicgb2YgZnVuY3Rpb24gb2JqZWN0cyBpcyBub3QgYWxsb3dlZCBvdXRzaWRlIHRoZSBmdW5jdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBmb28gPSBuZXcgRnVuY3Rpb24oIid1c2Ugc3RyaWN0JzsiKTsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgIGZvby5jYWxsZXIgPSA0MTsNCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICAgICAgfQ0KICAgICAgICBjYXRjaCAoZSkgew0KICAgICAgICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBUeXBlRXJyb3I7DQogICAgICAgIH0NCn0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTs=","commentary":"","description":"StrictMode - writing a property named 'caller' of function objects is not allowed outside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-6-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTctcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBlbnVtZXJhdGluZyBvdmVyIGEgZnVuY3Rpb24gb2JqZWN0IGxvb2tpbmcgZm9yICdjYWxsZXInIGZhaWxzIG91dHNpZGUgb2YgdGhlIGZ1bmN0aW9uDQogKiBAb25seVN0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBmb28gPSBuZXcgRnVuY3Rpb24oIid1c2Ugc3RyaWN0JzsiKTsNCiAgICAgICAgDQogICAgICAgIGZvciAodmFyIHRlbXBJbmRleCBpbiBmb28pIHsNCiAgICAgICAgICAgIGlmICh0ZW1wSW5kZXggPT09ICJjYWxsZXIiKSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiB0cnVlOw0KICAgIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"StrictMode - enumerating over a function object looking for 'caller' fails outside of the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-7-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTgtcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSBlbnVtZXJhdGluZyBvdmVyIGEgZnVuY3Rpb24gb2JqZWN0IGxvb2tpbmcgZm9yICdjYWxsZXInIGZhaWxzIGluc2lkZSB0aGUgZnVuY3Rpb24NCiAqIEBvbmx5U3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCiAgICAgICAgICAgIHZhciBmb28gPSBuZXcgRnVuY3Rpb24oIid1c2Ugc3RyaWN0JzsgZm9yICh2YXIgdGVtcEluZGV4IGluIHRoaXMpIHtpZiAodGVtcEluZGV4PT09XCJjYWxsZXJcIikge3JldHVybiBmYWxzZTt9fTsgcmV0dXJuIHRydWU7Iik7DQogICAgICAgICAgICByZXR1cm4gZm9vKCk7DQogICAgfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"StrictMode - enumerating over a function object looking for 'caller' fails inside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-8-s.js"},{"code":"77u/Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24gDQovKioNCiAqIEBwYXRoIGNoMTMvMTMuMi8xMy4yLTktcy5qcw0KICogQGRlc2NyaXB0aW9uIFN0cmljdE1vZGUgLSByZWFkaW5nIGEgcHJvcGVydHkgbmFtZWQgJ2NhbGxlcicgb2YgZnVuY3Rpb24gb2JqZWN0cyBpcyBub3QgYWxsb3dlZCBvdXRzaWRlIHRoZSBmdW5jdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqLw0KDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQogICAgICAgIHZhciBmb28gPSBGdW5jdGlvbigiJ3VzZSBzdHJpY3QnOyIpOw0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgdmFyIHRlbXAgPSBmb28uY2FsbGVyOw0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIGNhdGNoIChlKSB7DQogICAgICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIFR5cGVFcnJvcjsNCiAgICAgICAgfQ0KfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw==","commentary":"","description":"StrictMode - reading a property named 'caller' of function objects is not allowed outside the function","onlyStrict":"","path":"TestCases/ch13/13.2/13.2-9-s.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgZGVwdGggb2YgbmVzdGVkIGZ1bmN0aW9uIGNhbGxzIHJlYWNoZXMgMzIKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjFfQTFfVDEuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGZ1bmN0aW9uIGNhbGxzIDMyIGVsZW1lbnRzIGRlcHRoCiAqLwoKKGZ1bmN0aW9uKCl7CiAgICAoZnVuY3Rpb24oKXsKICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXt9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgIH0pKCkKICAgICAgICB9KSgpCiAgICB9KSgpCn0pKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgo=","commentary":"The depth of nested function calls reaches 32","description":"Creating function calls 32 elements depth","path":"TestCases/ch13/13.2/S13.2.1_A1_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBPYmplY3RzIGFzIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ5IHJlZmVyZW5jZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNF9UMS5qcwogKiBAZGVzY3JpcHRpb24gQWRkaW5nIG5ldyBudW1iZXIgcHJvcGVydHkgdG8gYSBmdW5jdGlvbiBhcmd1bWVudCB3aXRoaW4gdGhlIGZ1bmN0aW9uIGJvZHksCiAqIHdoZXJlIGV4cGxpY2l0IGFyZ3VtZW50IGlzIGFuIG9iamVjdCBkZWZpbmVkIHdpdGggInZhciBfX29iaj17fSIKICovCgpmdW5jdGlvbiBfX2Z1bmMoX19hcmcpewogICAgX19hcmcuZm9vPTc7Cn0KCnZhciBfX29iaj17fTsKCl9fZnVuYyhfX29iaik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX29iai5mb28gIT09IDcpIHsKCSRFUlJPUignIzE6IF9fb2JqLmZvbyA9PT0gNy4gQWN0dWFsOiBfX29iai5mb28gPT09JytfX29iai5mb28pOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Objects as arguments are passed by reference","description":"Adding new number property to a function argument within the function body,\nwhere explicit argument is an object defined with \"var __obj={}\"","path":"TestCases/ch13/13.2/S13.2.1_A4_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBPYmplY3RzIGFzIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ5IHJlZmVyZW5jZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNF9UMi5qcwogKiBAZGVzY3JpcHRpb24gQWRkaW5nIG5ldyBzdHJpbmcgcHJvcGVydHkgdG8gYSBmdW5jdGlvbiBhcmd1bWVudCB3aXRoaW4gdGhlIGZ1bmN0aW9uIGJvZHksCiAqIHdoZXJlIGV4cGxpY2l0IGFyZ3VtZW50IGlzIGFuIG9iamVjdCBkZWZpbmVkIHdpdGggIl9fb2JqPXt9IgogKi8KCmZ1bmN0aW9uIF9fZnVuYyhfX2FyZyl7CiAgICBfX2FyZy5mb289IndoaXNrZXkgZ29nbyI7Cn0KCnZhciBfX29iaj17fTsKCiBfX2Z1bmMoX19vYmopOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19vYmouZm9vICE9PSAid2hpc2tleSBnb2dvIikgewoJJEVSUk9SKCcjMTogX19vYmouZm9vID09PSAid2hpc2tleSBnb2dvIi4gQWN0dWFsOiBfX29iai5mb28gPT09JytfX29iai5mb28pOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Objects as arguments are passed by reference","description":"Adding new string property to a function argument within the function body,\nwhere explicit argument is an object defined with \"__obj={}\"","path":"TestCases/ch13/13.2/S13.2.1_A4_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBPYmplY3RzIGFzIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ5IHJlZmVyZW5jZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNF9UMy5qcwogKiBAZGVzY3JpcHRpb24gQWRkaW5nIG5ldyBudW1iZXIgcHJvcGVydHkgdG8gYSBmdW5jdGlvbiBhcmd1bWVudCB3aXRoaW4gdGhlIGZ1bmN0aW9uIGJvZHksCiAqIHdoZXJlIGFycmF5IGVsZW1lbnQgImFyZ3VtZW50c1swXSIgaXMgYW4gb2JqZWN0IGRlZmluZWQgd2l0aCAiX19vYmo9e30iCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICBhcmd1bWVudHNbMF1bIlBJIl09My4xNDsKfQoKdmFyIF9fb2JqPXt9OwoKX19mdW5jKF9fb2JqKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fb2JqLlBJICE9PSAzLjE0KSB7CgkkRVJST1IoJyMxOiBfX29iai5QSSA9PT0gMy4xNC4gQWN0dWFsOiBfX29iai5QSSA9PT0nK19fb2JqLlBJKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Objects as arguments are passed by reference","description":"Adding new number property to a function argument within the function body,\nwhere array element \"arguments[0]\" is an object defined with \"__obj={}\"","path":"TestCases/ch13/13.2/S13.2.1_A4_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBPYmplY3RzIGFzIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ5IHJlZmVyZW5jZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNF9UNC5qcwogKiBAZGVzY3JpcHRpb24gQWRkaW5nIG5ldyBudW1iZXIgcHJvcGVydHkgdG8gYSBmdW5jdGlvbiBhcmd1bWVudCB3aXRoaW4gdGhlIGZ1bmN0aW9uIGJvZHksCiAqIHdoZXJlIGFycmF5IGVsZW1lbnQgImFyZ3VtZW50c1swXSIgaXMgYW4gb2JqZWN0IGRlZmluZWQgd2l0aCAidmFyIF9fb2JqPXt9IgogKi8KCmZ1bmN0aW9uIF9fZnVuYygpewogICAgYXJndW1lbnRzWzBdWyJFIl09Mi43NDsKfQoKdmFyIF9fb2JqPXt9OwoKX19mdW5jKF9fb2JqKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fb2JqLkUgIT09IDIuNzQpIHsKCSRFUlJPUignIzE6IF9fb2JqLkUgPT09IDIuNzQuIEFjdHVhbDogX19vYmouRSA9PT0nK19fb2JqLkUpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Objects as arguments are passed by reference","description":"Adding new number property to a function argument within the function body,\nwhere array element \"arguments[0]\" is an object defined with \"var __obj={}\"","path":"TestCases/ch13/13.2/S13.2.1_A4_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDbG9zdXJlcyBhcmUgYWRtaXR0ZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjFfQTVfVDEuanMKICogQGRlc2NyaXB0aW9uIFNvcnRpbmcgd2l0aCBjbG9zdXJlCiAqLwoKdmFyIF9fYXJyID0gWzQsMywyLDEsNCwzLDIsMSw0LDMsMiwxXTsKLy9Tb3J0IHVzZXMgY2xvc3VyZQovLwpfX2Fyci5zb3J0KAoJZnVuY3Rpb24oeCx5KSB7IAoJCWlmICh4Pnkpe3JldHVybiAtMTt9IAoJCWlmICh4PHkpe3JldHVybiAxO30gCgkJaWYgKHg9PXkpe3JldHVybiAwO30gCgl9Cik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Fyci50b1N0cmluZygpICE9PSBbNCw0LDQsMywzLDMsMiwyLDIsMSwxLDFdLnRvU3RyaW5nKCkpIHsKCSRFUlJPUignIzE6IF9fYXJyLnRvU3RyaW5nKCkgPT09IFs0LDQsNCwzLDMsMywyLDIsMiwxLDEsMV0udG9TdHJpbmcoKS4gQWN0dWFsOiBfX2Fyci50b1N0cmluZygpID09PScrX19hcnIudG9TdHJpbmcoKSk7Cn0KCi8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgCgo=","commentary":"Closures are admitted","description":"Sorting with closure","path":"TestCases/ch13/13.2/S13.2.1_A5_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDbG9zdXJlcyBhcmUgYWRtaXR0ZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjFfQTVfVDIuanMKICogQGRlc2NyaXB0aW9uIFJldHVybmluZyBhIGZ1bmN0aW9uIHRoYXQgYXBwcm94aW1hdGVzIHRoZSBkZXJpdmF0aXZlIG9mIGYKICogdXNpbmcgYW4gaW50ZXJ2YWwgb2YgZHgsIHdoaWNoIHNob3VsZCBiZSBhcHByb3ByaWF0ZWx5IHNtYWxsCiAqLwoKLy8gUmV0dXJuIGEgZnVuY3Rpb24gdGhhdCBhcHByb3hpbWF0ZXMgdGhlIGRlcml2YXRpdmUgb2YgZgovLyB1c2luZyBhbiBpbnRlcnZhbCBvZiBkeCwgd2hpY2ggc2hvdWxkIGJlIGFwcHJvcHJpYXRlbHkgc21hbGwuCmZ1bmN0aW9uIGRlcml2YXRpdmUoZiwgZHgpIHsKICAgIHJldHVybiBmdW5jdGlvbih4KSB7CiAgICAgIHJldHVybiAoZih4ICsgZHgpIC0gZih4KSkgLyBkeDsKICAgIH07Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKE1hdGguYWJzKGRlcml2YXRpdmUoTWF0aC5zaW4sIDAuMDAwMSkoMCkgLSBkZXJpdmF0aXZlKE1hdGguc2luLCAwLjAwMDEpKDIqTWF0aC5QSSkpID49IDEvNjU1MzYuMCkgewoJJEVSUk9SKCcjMTogTWF0aC5hYnMoZGVyaXZhdGl2ZShNYXRoLnNpbiwgMC4wMDAxKSgwKSAtIGRlcml2YXRpdmUoTWF0aC5zaW4sIDAuMDAwMSkoMipNYXRoLlBJKSkgPD0gMS82NTUzNi4wJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Closures are admitted","description":"Returning a function that approximates the derivative of f\nusing an interval of dx, which should be appropriately small","path":"TestCases/ch13/13.2/S13.2.1_A5_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBQcmltaXRpdmUgdHlwZXMgYXJlIHBhc3NlZCBieSB2YWx1ZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNl9UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiZnVuY3Rpb24gX19mdW5jKGFyZzEsIGFyZzIpIgogKi8KCmZ1bmN0aW9uIF9fZnVuYyhhcmcxLCBhcmcyKXsKICAgIGFyZzErKzsKICAgIGFyZzIrPSJCQSI7Cn07Cgp2YXIgeD0xOwp5PTI7CnZhciBhPSJBQiIKYj0iU0FNIjsKCl9fZnVuYyh4LGEpOwpfX2Z1bmMoeSxiKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHghPT0xIHx8IHkhPT0yIHx8IGEhPT0iQUIiIHx8IGIhPT0iU0FNIikgewoJJEVSUk9SKCcjMTogeCA9PT0gMSBhbmQgeSA9PT0gMiBhbmQgYSA9PT0gIkFCIiBhbmQgYiA9PT0gIlNBTSIuIEFjdHVhbDogeCA9PT0nK3grJyBhbmQgeSA9PT0nK3krJyBhbmQgYSA9PT0nK2ErJyBhbmQgYiA9PT0nK2IpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Primitive types are passed by value","description":"Declaring a function with \"function __func(arg1, arg2)\"","path":"TestCases/ch13/13.2/S13.2.1_A6_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBQcmltaXRpdmUgdHlwZXMgYXJlIHBhc3NlZCBieSB2YWx1ZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNl9UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiX19mdW5jID0gZnVuY3Rpb24oYXJnMSwgYXJnMikiCiAqLwoKX19mdW5jID0gZnVuY3Rpb24oYXJnMSwgYXJnMil7CiAgICBhcmcxKys7CiAgICBhcmcyKz0iQkEiOwp9OwoKdmFyIHg9MTsKeT0yOwp2YXIgYT0iQUIiCmI9IlNBTSI7CgpfX2Z1bmMoeCxhKTsKX19mdW5jKHksYik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh4IT09MSB8fCB5IT09MiB8fCBhIT09IkFCIiB8fCBiIT09IlNBTSIpIHsKCSRFUlJPUignIzE6IHggPT09IDEgYW5kIHkgPT09IDIgYW5kIGEgPT09ICJBQiIgYW5kIGIgPT09ICJTQU0iLiBBY3R1YWw6IHggPT09Jyt4KycgYW5kIHkgPT09Jyt5KycgYW5kIGEgPT09JythKycgYW5kIGIgPT09JytiKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Primitive types are passed by value","description":"Declaring a function with \"__func = function(arg1, arg2)\"","path":"TestCases/ch13/13.2/S13.2.1_A6_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgbnVsbC4gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiZnVuY3Rpb24gX19mdW5jKCkiCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB2YXIgeCA9IG51bGw7CiAgICByZXR1cm4geDsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnl7CiAgICB2YXIgeD1fX2Z1bmMoKTsKfSBjYXRjaChlKXsKICAgICRFUlJPUignIzE6IHZhciB4PV9fZnVuYygpIGRvZXMgbm90IGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uLiBBY3R1YWw6IGV4Y2VwdGlvbiBpcyAnK2UpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"When the [[Call]] property for a Function object F is called, the following steps are taken:\n2. Evaluate F's FunctionBody;\nif Result.type is returned then Result.value is returned too","description":"Returning null. Declaring a function with \"function __func()\"","path":"TestCases/ch13/13.2/S13.2.1_A7_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgbnVsbC4gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAidmFyIF9fZnVuYyA9IGZ1bmN0aW9uICgpIgogKi8KCnZhciBfX2Z1bmMgPSBmdW5jdGlvbiAoKXsKICAgIHZhciB4ID0gbnVsbDsKICAgIHJldHVybiB4Owp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCnRyeXsKICAgIHZhciB4PV9fZnVuYygpOwp9IGNhdGNoKGUpewogICAgJEVSUk9SKCcjMTogdmFyIHg9X19mdW5jKCkgZG9lcyBub3QgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24uIEFjdHVhbDogZXhjZXB0aW9uIGlzICcrZSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"When the [[Call]] property for a Function object F is called, the following steps are taken:\n2. Evaluate F's FunctionBody;\nif Result.type is returned then Result.value is returned too","description":"Returning null. Declaring a function with \"var __func = function ()\"","path":"TestCases/ch13/13.2/S13.2.1_A7_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1QzLmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgbnVtYmVyLiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMoKSIKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXsKICAgIHggPSAxOwogICAgcmV0dXJuIHg7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIwp0cnkgewoJeD14OwoJJEVSUk9SKCcjMDogIng9eCIgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkgewogICAgaWYgKGUgaW5zdGFuY2VvZiBUZXN0MjYyRXJyb3IpIHRocm93IGU7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCnRyeXsKICAgIHZhciBfX3g9X19mdW5jKCk7Cn0gY2F0Y2goZSl7CiAgICAkRVJST1IoJyMxOiB2YXIgX194PV9fZnVuYygpIGRvZXMgbm90IGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uLiBBY3R1YWw6IGV4Y2VwdGlvbiBpcyAnK2UpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX194ICE9PSAxKSB7CgkkRVJST1IoJyMyOiBfX3ggPT09IDEuIEFjdHVhbDogX194ID09PScrX194KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKHggIT09IDEpIHsKCSRFUlJPUignIzM6IHggPT09IDEuIEFjdHVhbDogeCA9PT0nK3gpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCg==","commentary":"When the [[Call]] property for a Function object F is called, the following steps are taken:\n2. Evaluate F's FunctionBody;\nif Result.type is returned then Result.value is returned too","description":"Returning number. Declaring a function with \"function __func()\"","path":"TestCases/ch13/13.2/S13.2.1_A7_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1Q0LmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgYm9vbGVhbi4gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiZnVuY3Rpb24gX19mdW5jKCkiCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB2YXIgeCA9IHRydWU7CiAgICByZXR1cm4geDsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjCnRyeSB7Cgl4PXg7CgkkRVJST1IoJyMwOiAieD14IiBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOw0KfSBjYXRjaCAoZSkgew0KICAgIGlmIChlIGluc3RhbmNlb2YgVGVzdDI2MkVycm9yKSB0aHJvdyBlOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnl7CiAgICB2YXIgX194PV9fZnVuYygpCn0gY2F0Y2goZSl7CiAgICAkRVJST1IoJyMxOiB2YXIgX194PV9fZnVuYygpIGRvZXMgbm90IGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uLiBBY3R1YWw6IGV4Y2VwdGlvbiBpcyAnK2UpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoIShfX3gpKSB7CgkkRVJST1IoJyMyOiBfX3ggPT09IHRydWUuIEFjdHVhbDogX194ID09PScrX194KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKdHJ5IHsKCXg9eDsKCSRFUlJPUignIzM6ICJ4PXgiIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7DQp9IGNhdGNoIChlKSB7DQogICAgaWYgKGUgaW5zdGFuY2VvZiBUZXN0MjYyRXJyb3IpIHRocm93IGU7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoK","commentary":"When the [[Call]] property for a Function object F is called, the following steps are taken:\n2. Evaluate F's FunctionBody;\nif Result.type is returned then Result.value is returned too","description":"Returning boolean. Declaring a function with \"function __func()\"","path":"TestCases/ch13/13.2/S13.2.1_A7_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyB0aHJvd24gdGhlbiBSZXN1bHQudmFsdWUgaXMgdGhyb3duIHRvbwogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BOF9UMS5qcwogKiBAZGVzY3JpcHRpb24gVGhyb3dpbmcgYW4gZXhjZXB0aW9uIHdpdGhpbiBhIGZ1bmN0aW9uIGJvZHkuIERlY2xhcmluZyBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMoKSIKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXsKICAgIHZhciB4ID0gMTsKICAgIHRocm93ICgiQ2F0Y2ggTWUgSWYgWW91IENhbiIpCiAgICByZXR1cm4geDsKfQoKdHJ5ewogICAgdmFyIHg9X19mdW5jKCkKICAgICRFUlJPUignIzA6IHZhciB4PV9fZnVuYygpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0gY2F0Y2goZSl7CiAgICBpZiAoZSAhPT0gIkNhdGNoIE1lIElmIFlvdSBDYW4iKSB7CiAgICAJJEVSUk9SKCcjMTogRXhjZXB0aW9uID09PSAiQ2F0Y2ggTWUgSWYgWW91IENhbiIuIEFjdHVhbDogZXhjZXB0aW9uID09PScrZSk7CiAgICB9Cn0KCg==","commentary":"When the [[Call]] property for a Function object F is called, the following steps are taken:\n2. Evaluate F's FunctionBody;\nif Result.type is thrown then Result.value is thrown too","description":"Throwing an exception within a function body. Declaring function with \"function __func()\"","path":"TestCases/ch13/13.2/S13.2.1_A8_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyB0aHJvd24gdGhlbiBSZXN1bHQudmFsdWUgaXMgdGhyb3duIHRvbwogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BOF9UMi5qcwogKiBAZGVzY3JpcHRpb24gVGhyb3dpbmcgYW4gZXhjZXB0aW9uIHdpdGhpbiBhIGZ1bmN0aW9uIGJvZHkuIERlY2xhcmluZyBmdW5jdGlvbiB3aXRoICJ2YXIgX19mdW5jID0gZnVuY3Rpb24gKG1lc3NhZ2UpIgogKi8KCnZhciBDQVRDSF9NRV9JRl9ZT1VfQ0FOID0gdHJ1ZTsKCnZhciBfX2Z1bmMgPSBmdW5jdGlvbiAobWVzc2FnZSl7CiAgICB2YXIgeCA9IDE7CiAgICB0aHJvdyAobWVzc2FnZSkKICAgIHJldHVybiB4Owp9Cgp0cnl7CiAgICB2YXIgeD1fX2Z1bmMoQ0FUQ0hfTUVfSUZfWU9VX0NBTikKICAgICRFUlJPUignIzA6IHZhciB4PV9fZnVuYyhDQVRDSF9NRV9JRl9ZT1VfQ0FOKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoKGUpewogICAgaWYgKCFlKSB7CiAgICAJJEVSUk9SKCcjMTogRXhjZXB0aW9uID09PSB0cnVlLiBBY3R1YWw6IGV4Y2VwdGlvbiA9PT0nK2UpOwogICAgfQp9Cgo=","commentary":"When the [[Call]] property for a Function object F is called, the following steps are taken:\n2. Evaluate F's FunctionBody;\nif Result.type is thrown then Result.value is thrown too","description":"Throwing an exception within a function body. Declaring function with \"var __func = function (message)\"","path":"TestCases/ch13/13.2/S13.2.1_A8_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgaXMgY2FsbGVkLAogKiB0aGUgYm9keSBpcyBldmFsdWF0ZWQgYW5kIGlmIGV2YWx1YXRpb24gcmVzdWx0IGhhcyB0eXBlICJub3JtYWwiLCB0aGVuICJ1bmRlZmluZWQiIGlzIHJldHVybmVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E5LjFfVDEuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggImZ1bmN0aW9uIF9fZnVuYygpIiBhbmQgbm8gInJldHVybiIgaW4gdGhlIGZ1bmN0aW9uIGJvZHkKICovCgp2YXIgeDsKCmZ1bmN0aW9uIF9fZnVuYygpewogICAgeCA9IHRydWU7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygpICE9PSB1bmRlZmluZWQpIHsKCSRFUlJPUignIzE6IF9fZnVuYygpID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19mdW5jKCkgPT09JytfX2Z1bmMoKSk7Cn07Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoIXgpIHsKCSRFUlJPUignIzI6IHggPT09IHRydWUuIEFjdHVhbDogeCA9PT0gJyt4KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"When the [[Call]] property for a Function object is called,\nthe body is evaluated and if evaluation result has type \"normal\", then \"undefined\" is returned","description":"Declaring a function with \"function __func()\" and no \"return\" in the function body","path":"TestCases/ch13/13.2/S13.2.1_A9.1_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgaXMgY2FsbGVkLAogKiB0aGUgYm9keSBpcyBldmFsdWF0ZWQgYW5kIGlmIGV2YWx1YXRpb24gcmVzdWx0IGhhcyB0eXBlICJub3JtYWwiLCB0aGVuICJ1bmRlZmluZWQiIGlzIHJldHVybmVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E5LjFfVDIuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggInZhciBfX2Z1bmMgPSBmdW5jdGlvbigpIiBhbmQgbm8gInJldHVybiIgaW4gdGhlIGZ1bmN0aW9uIGJvZHkKICovCgp2YXIgeDsKCnZhciBfX2Z1bmMgPSBmdW5jdGlvbigpewogICAgeCA9IHRydWU7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygpICE9PSB1bmRlZmluZWQpIHsKCSRFUlJPUignIzE6IF9fZnVuYygpID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19mdW5jKCkgPT09JytfX2Z1bmMoKSk7Cn07Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoIXgpIHsKCSRFUlJPUignIzI6IHggPT09IHRydWUuIEFjdHVhbDogeCA9PT0gJyt4KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"When the [[Call]] property for a Function object is called,\nthe body is evaluated and if evaluation result has type \"normal\", then \"undefined\" is returned","description":"Declaring a function with \"var __func = function()\" and no \"return\" in the function body","path":"TestCases/ch13/13.2/S13.2.1_A9.1_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgaXMgY2FsbGVkLAogKiB0aGUgYm9keSBpcyBldmFsdWF0ZWQgYW5kIGlmIGV2YWx1YXRpb24gcmVzdWx0IGhhcyB0eXBlICJyZXR1cm4iIGl0cyB2YWx1ZSBpcyBub3QgZGVmaW5lZCwgdGhlbiAidW5kZWZpbmVkIiBpcyByZXR1cm5lZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BOV9UMS5qcwogKiBAZGVzY3JpcHRpb24gVXNpbmcgInJldHVybiIgd2l0aCBubyBleHByZXNzaW9uLiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMoKSIKICovCgp2YXIgeDsgCgpmdW5jdGlvbiBfX2Z1bmMoKXsKICAgIHggPSAxOwogICAgcmV0dXJuOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoKSAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2Z1bmMoKSA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fZnVuYygpID09PScrX19mdW5jKCkpOwp9OwovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHghPT0xKSB7CgkkRVJST1IoJyMyOiB4ID09PSAxLiBBY3R1YWw6IHggPT09ICcreCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"When the [[Call]] property for a Function object is called,\nthe body is evaluated and if evaluation result has type \"return\" its value is not defined, then \"undefined\" is returned","description":"Using \"return\" with no expression. Declaring a function with \"function __func()\"","path":"TestCases/ch13/13.2/S13.2.1_A9_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgaXMgY2FsbGVkLAogKiB0aGUgYm9keSBpcyBldmFsdWF0ZWQgYW5kIGlmIGV2YWx1YXRpb24gcmVzdWx0IGhhcyB0eXBlICJyZXR1cm4iIGl0cyB2YWx1ZSBpcyBub3QgZGVmaW5lZCwgdGhlbiAidW5kZWZpbmVkIiBpcyByZXR1cm5lZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BOV9UMi5qcwogKiBAZGVzY3JpcHRpb24gVXNpbmcgInJldHVybiIgd2l0aCBubyBleHByZXNzaW9uLiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJ2YXIgX19mdW5jID0gZnVuY3Rpb24oKSIKICovCgp2YXIgeDsgCgp2YXIgX19mdW5jID0gZnVuY3Rpb24oKXsKICAgIHggPSAxOwogICAgcmV0dXJuOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoKSAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2Z1bmMoKSA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fZnVuYygpID09PScrX19mdW5jKCkpOwp9OwovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHghPT0xKSB7CgkkRVJST1IoJyMyOiB4ID09PSAxLiBBY3R1YWw6IHggPT09ICcreCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"When the [[Call]] property for a Function object is called,\nthe body is evaluated and if evaluation result has type \"return\" its value is not defined, then \"undefined\" is returned","description":"Using \"return\" with no expression. Declaring a function with \"var __func = function()\"","path":"TestCases/ch13/13.2/S13.2.1_A9_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBwb3NzaWJsZSBhcyBsb25nIGFzIHRoaXMuYW55X0Z1bmN0aW9uIGlzIGRlY2xhcmVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExMC5qcwogKiBAZGVzY3JpcHRpb24gQ2FsbGluZyBhIGZ1bmN0aW9uIGFzIGEgY29uc3RydWN0b3IgYWZ0ZXIgaXQgaGFzIGJlZW4gZGVjbGFyZWQKICovCgpmdW5jdGlvbiBGQUNUT1JZKCl7CiAgIHRoaXMuaWQgPSAwOwogICAKICAgdGhpcy5mdW5jID0gZnVuY3Rpb24gKCl7CiAgICAgIHJldHVybiA1OwogICB9CiAgIAogICB0aGlzLmlkID0gdGhpcy5mdW5jKCk7CiAgICAgCn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnkgewoJdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCk7Cn0gY2F0Y2ggKGUpIHsKCSRFUlJPUignIzE6IHZhciBvYmogPSBuZXcgRkFDVE9SWSgpIGRvZXMgbm90IGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uLiBBY3R1YWw6IEV4Y2VwdGlvbiBpcyAnK2UpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAob2JqLmlkICE9PSA1KSB7CgkkRVJST1IoJyMyOiBvYmouaWQgPT09IDUuIEFjdHVhbDogb2JqLmlkID09PScrb2JqLmlkKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Calling a function as a constructor is possible as long as this.any_Function is declared","description":"Calling a function as a constructor after it has been declared","path":"TestCases/ch13/13.2/S13.2.2_A10.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBwb3NzaWJsZSBhcyBsb25nIGFzIHRoaXMuYW55X0Z1bmN0aW9uIGlzIGRlY2xhcmVkIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTExLmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCB3aXRoICJmdW5jdGlvbiBmdW5jKCkiCiAqLwoKZnVuY3Rpb24gRkFDVE9SWSgpewogICB0aGlzLmlkID0gMDsKICAgICAgCiAgIHRoaXMuaWQgPSB0aGlzLmZ1bmMoKTsKICAgCiAgIGZ1bmN0aW9uIGZ1bmMoKXsKICAgICAgcmV0dXJuICJpZF9zdHJpbmciOwogICB9CiAgICAgCn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnkgewoJdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCk7CgkkRVJST1IoJyMxOiB2YXIgb2JqID0gbmV3IEZBQ1RPUlkoKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOw0KfSBjYXRjaCAoZSkgew0KICAgIGlmIChlIGluc3RhbmNlb2YgVGVzdDI2MkVycm9yKSB0aHJvdyBlOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCg==","commentary":"Calling a function as a constructor is possible as long as this.any_Function is declared and called","description":"Calling a function as a constructor after it has been declared with \"function func()\"","path":"TestCases/ch13/13.2/S13.2.2_A11.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBwb3NzaWJsZSBhcyBsb25nIGFzIHRoaXMuYW55X0Z1bmN0aW9uIGlzIGRlY2xhcmVkIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTEyLmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCB3aXRoICJmdW5jdGlvbiBmdW5jKCkiCiAqLwoKZnVuY3Rpb24gRkFDVE9SWSgpewogICB0aGlzLmlkID0gMDsKICAgICAgCiAgIHRoaXMuaWQgPSBmdW5jKCk7CiAgIAogICBmdW5jdGlvbiBmdW5jKCl7CiAgICAgIHJldHVybiAiaWRfc3RyaW5nIjsKICAgfQogICAgIAp9Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5IHsKCXZhciBvYmogPSBuZXcgRkFDVE9SWSgpOwp9IGNhdGNoIChlKSB7CgkkRVJST1IoJyMxOiB2YXIgb2JqID0gbmV3IEZBQ1RPUlkoKSBkb2VzIG5vdCBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbi4gQWN0dWFsOiBFeGNlcHRpb24gaXMgJytlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKG9iai5pZCAhPT0gImlkX3N0cmluZyIpIHsKCSRFUlJPUignIzI6IG9iai5pZCA9PT0gImlkX3N0cmluZyIuIEFjdHVhbDogb2JqLmlkID09PScrb2JqLmlkKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Calling a function as a constructor is possible as long as this.any_Function is declared and called","description":"Calling a function as a constructor after it has been declared with \"function func()\"","path":"TestCases/ch13/13.2/S13.2.2_A12.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBpbmFkbWlzc2libGUgYXMgbG9uZyBhcyB0aGlzLmFueV9GdW5jdGlvbiBpcyBkZWNsYXJlZCBieSBldmFsIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTEzLmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCBieSBldmFsCiAqLwoKZnVuY3Rpb24gRkFDVE9SWSgpewogICB0aGlzLmlkID0gMDsKICAgICAgCiAgIHRoaXMuaWQgPSBmdW5jKCk7CiAgIAogICBldmFsKCJmdW5jdGlvbiBmdW5jKCl7cmV0dXJuIFwiaWRfc3RyaW5nXCI7fSIpOwogICAgIAp9Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5IHsKCXZhciBvYmogPSBuZXcgRkFDVE9SWSgpOwoJJEVSUk9SKCcjMTogdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCkgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKTsNCn0gY2F0Y2ggKGUpIHsNCiAgICBpZiAoZSBpbnN0YW5jZW9mIFRlc3QyNjJFcnJvcikgdGhyb3cgZTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Calling a function as a constructor is inadmissible as long as this.any_Function is declared by eval and called","description":"Calling a function as a constructor after it has been declared by eval","path":"TestCases/ch13/13.2/S13.2.2_A13.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBpbmFkbWlzc2libGUgYXMgbG9uZyBhcyB0aGlzLmFueV9GdW5jdGlvbiBpcyBkZWNsYXJlZCBieSBldmFsIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTE0LmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCBieSBldmFsCiAqIEBub1N0cmljdAogKi8KCmZ1bmN0aW9uIEZBQ1RPUlkoKXsKICAgdGhpcy5pZCA9IDA7CgogICBldmFsKCJmdW5jdGlvbiBmdW5jKCl7cmV0dXJuIFwiaWRfc3RyaW5nXCI7fSIpOwoKICAgdGhpcy5pZCA9IGZ1bmMoKTsKCn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnkgewoJdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCk7Cn0gY2F0Y2ggKGUpIHsKCSRFUlJPUignIzE6IHZhciBvYmogPSBuZXcgRkFDVE9SWSgpIGRvZXMgbm90IGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Calling a function as a constructor is inadmissible as long as this.any_Function is declared by eval and called","description":"Calling a function as a constructor after it has been declared by eval","noStrict":"","path":"TestCases/ch13/13.2/S13.2.2_A14.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZCwKICogYW5kIHRoZSBvYmplY3QgY3JlYXRlZCBpbiB0aGUgZnVuY3Rpb24gaXMgcmV0dXJuZWQsIHRoZSBvYmplY3QgKGRlY2xhcmVkIHdpdGggInRoaXMiIHdpdGhpbiBhIGZ1bmN0aW9uKSB3aWxsIGJlIHN0cm9uZyBhbmQgaGVhbHRoeQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTVfVDEuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGRlY2xhcmVkIGF0IHRoZSBlbmQgb2YgdGhlIHByb2dyYW0gYW5kICJvYmoiIHByb3BlcnR5IGlzIGRlY2xhcmVkIHdpdGggInZhciBvYmogPSB7fSIKICovCgp2YXIgX19vYmogPSBuZXcgX19GQUNUT1JZKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2Ygb2JqICE9PSAidW5kZWZpbmVkIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIG9iaiA9PT0gInVuZGVmaW5lZCIuIEFjdHVhbDogdHlwZW9mIG9iaiA9PT0nK3R5cGVvZiBvYmopOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19vYmoucHJvcCAhPT0gIkEiKSB7CgkkRVJST1IoJyMyOiBfX29iai5wcm9wID09PSAiQSIuIEFjdHVhbDogX19vYmoucHJvcCA9PT0nK19fb2JqLnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19vYmouc2xvdC5wcm9wICE9PTEpIHsKCSRFUlJPUignIzM6IF9fb2JqLnNsb3QucHJvcCA9PT0xLiBBY3R1YWw6IF9fb2JqLnNsb3QucHJvcCA9PT0nK19fb2JqLnNsb3QucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXsKICAgIHRoaXMucHJvcCA9IDE7CiAgICB2YXIgb2JqID0ge307CiAgICBvYmoucHJvcCA9ICJBIjsKICAgIG9iai5zbG90ID0gdGhpczsKICAgIHJldHVybiBvYmo7Cn0KCg==","commentary":"When the [[Construct]] property for a Function object F is called,\nand the object created in the function is returned, the object (declared with \"this\" within a function) will be strong and healthy","description":"Function declared at the end of the program and \"obj\" property is declared with \"var obj = {}\"","path":"TestCases/ch13/13.2/S13.2.2_A15_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZCwKICogYW5kIHRoZSBvYmplY3QgY3JlYXRlZCBpbiB0aGUgZnVuY3Rpb24gaXMgcmV0dXJuZWQsIHRoZSBvYmplY3QgKGRlY2xhcmVkIHdpdGggInRoaXMiIHdpdGhpbiBhIGZ1bmN0aW9uKSB3aWxsIGJlIHN0cm9uZyBhbmQgaGVhbHRoeQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTVfVDIuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGRlY2xhcmVkIGF0IHRoZSBlbmQgb2YgdGhlIHByb2dyYW0gYW5kICJvYmoiIHByb3BlcnR5IGlzIGRlY2xhcmVkIHdpdGggIm9iaiA9IHt9IgogKi8KCnZhciBfX29iaiA9IG5ldyBfX0ZBQ1RPUlkoKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKG9iai5wcm9wICE9PSAiQSIpIHsKCSRFUlJPUignIzE6IG9iai5wcm9wID09PSAiQSIuIEFjdHVhbDogb2JqLnByb3AgPT09JytvYmoucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX29iai5wcm9wICE9PSAiQSIpIHsKCSRFUlJPUignIzI6IF9fb2JqLnByb3AgPT09ICJBIi4gQWN0dWFsOiBfX29iai5wcm9wID09PScrX19vYmoucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmIChfX29iai5zbG90LnByb3AgIT09MSkgewoJJEVSUk9SKCcjMzogX19vYmouc2xvdC5wcm9wID09PSAxLiBBY3R1YWw6IF9fb2JqLnNsb3QucHJvcCA9PT0nK19fb2JqLnNsb3QucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXsKICAgIHRoaXMucHJvcCA9IDE7CiAgICBvYmogPSB7fTsKICAgIG9iai5wcm9wID0gIkEiOwogICAgb2JqLnNsb3QgPSB0aGlzOwogICAgcmV0dXJuIG9iajsKfQoK","commentary":"When the [[Construct]] property for a Function object F is called,\nand the object created in the function is returned, the object (declared with \"this\" within a function) will be strong and healthy","description":"Function declared at the end of the program and \"obj\" property is declared with \"obj = {}\"","path":"TestCases/ch13/13.2/S13.2.2_A15_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZCwKICogYW5kIHRoZSBvYmplY3QgY3JlYXRlZCBpbiB0aGUgZnVuY3Rpb24gaXMgcmV0dXJuZWQsIHRoZSBvYmplY3QgKGRlY2xhcmVkIHdpdGggInRoaXMiIHdpdGhpbiBhIGZ1bmN0aW9uKSB3aWxsIGJlIHN0cm9uZyBhbmQgaGVhbHRoeQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTVfVDMuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGRlY2xhcmVkIGF0IHRoZSBlbmQgb2YgdGhlIHByb2dyYW0gYW5kICJvYmoiIHByb3BlcnR5IGlzIGRlY2xhcmVkIHdpdGggInZhciBvYmogPSB7fSIKICovCgpfX0ZBQ1RPUlkgPSBmdW5jdGlvbiAoKXsKICAgIHRoaXMucHJvcCA9IDE7CiAgICB2YXIgb2JqID0ge307CiAgICBvYmoucHJvcCA9ICJBIjsKICAgIG9iai5zbG90ID0gdGhpczsKICAgIHJldHVybiBvYmo7Cn0KCl9fb2JqID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iaiAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBvYmogPT09ICJ1bmRlZmluZWQiLiBBY3R1YWw6IHR5cGVvZiBvYmogPT09Jyt0eXBlb2Ygb2JqKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLnByb3AgIT09ICJBIikgewoJJEVSUk9SKCcjMjogX19vYmoucHJvcCA9PT0gIkEiLiBBY3R1YWw6IF9fb2JqLnByb3AgPT09JytfX29iai5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKF9fb2JqLnNsb3QucHJvcCAhPT0xKSB7CgkkRVJST1IoJyMzOiBfX29iai5zbG90LnByb3AgPT09MS4gQWN0dWFsOiBfX29iai5zbG90LnByb3AgPT09JytfX29iai5zbG90LnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"When the [[Construct]] property for a Function object F is called,\nand the object created in the function is returned, the object (declared with \"this\" within a function) will be strong and healthy","description":"Function declared at the end of the program and \"obj\" property is declared with \"var obj = {}\"","path":"TestCases/ch13/13.2/S13.2.2_A15_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZCwKICogYW5kIHRoZSBvYmplY3QgY3JlYXRlZCBpbiB0aGUgZnVuY3Rpb24gaXMgcmV0dXJuZWQsIHRoZSBvYmplY3QgKGRlY2xhcmVkIHdpdGggInRoaXMiIHdpdGhpbiBhIGZ1bmN0aW9uKSB3aWxsIGJlIHN0cm9uZyBhbmQgaGVhbHRoeQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTVfVDQuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGRlY2xhcmVkIGF0IHRoZSBlbmQgb2YgdGhlIHByb2dyYW0gYW5kICJvYmoiIHByb3BlcnR5IGlzIGRlY2xhcmVkIHdpdGggIm9iaiA9IHt9IgogKi8KCl9fRkFDVE9SWSA9IGZ1bmN0aW9uKCl7CiAgICB0aGlzLnByb3AgPSAxOwogICAgb2JqID0ge307CiAgICBvYmoucHJvcCA9ICJBIjsKICAgIG9iai5zbG90ID0gdGhpczsKICAgIHJldHVybiBvYmo7Cn0KCl9fb2JqID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAob2JqLnByb3AgIT09ICJBIikgewoJJEVSUk9SKCcjMTogb2JqLnByb3AgPT09ICJBIi4gQWN0dWFsOiBvYmoucHJvcCA9PT0nK29iai5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLnByb3AgIT09ICJBIikgewoJJEVSUk9SKCcjMjogX19vYmoucHJvcCA9PT0gIkEiLiBBY3R1YWw6IF9fb2JqLnByb3AgPT09JytvYmoucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmIChfX29iai5zbG90LnByb3AgIT09MSkgewoJJEVSUk9SKCcjMzogX19vYmouc2xvdC5wcm9wID09PTEuIEFjdHVhbDogX19vYmouc2xvdC5wcm9wID09PScrb2JqLnNsb3QucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoK","commentary":"When the [[Construct]] property for a Function object F is called,\nand the object created in the function is returned, the object (declared with \"this\" within a function) will be strong and healthy","description":"Function declared at the end of the program and \"obj\" property is declared with \"obj = {}\"","path":"TestCases/ch13/13.2/S13.2.2_A15_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gd2l0aGluIGEgbmV3IHN0YXRlbWVudCBpcyBhZG1pdHRlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTZfVDEuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nICJpcyBfX29iaiA9IG5ldyBmdW5jdGlvbiBfX2Z1bmMoKXt0aGlzLnByb3A9MTt9IiBhcyBGdW5jdGlvbkV4cHJlc3Npb24KICovCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19mdW5jICE9PSAidW5kZWZpbmVkIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gInVuZGVmaW5lZCIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fb2JqID0gbmV3IGZ1bmN0aW9uIF9fZnVuYygpe3RoaXMucHJvcD0xO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX29iai5wcm9wICE9PSAxKSB7CgkkRVJST1IoJyMyOiBfX29iai5wcm9wID09PSAxLiBBY3R1YWw6IF9fb2JqLnByb3AgPT09JytfX29iai5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzUKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJ1bmRlZmluZWQiKSB7CgkkRVJST1IoJyM1OiB0eXBlb2YgX19mdW5jID09PSAidW5kZWZpbmVkIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"FunctionExpression within a new statement is admitted","description":"Using \"is __obj = new function __func(){this.prop=1;}\" as FunctionExpression","path":"TestCases/ch13/13.2/S13.2.2_A16_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gd2l0aGluIGEgbmV3IHN0YXRlbWVudCBpcyBhZG1pdHRlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTZfVDIuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nICJ2YXIgX19vYmogPSBuZXcgZnVuY3Rpb24gX19mdW5jKGFyZyl7dGhpcy5wcm9wPWFyZzt9KDUpIiBhcyBGdW5jdGlvbkV4cHJlc3Npb24KICovCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19mdW5jICE9PSAidW5kZWZpbmVkIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gInVuZGVmaW5lZCIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fb2JqID0gbmV3IGZ1bmN0aW9uIF9fZnVuYyhhcmcpe3RoaXMucHJvcD1hcmc7fSg1KTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLnByb3AgIT09IDUpIHsKCSRFUlJPUignIzI6IF9fb2JqLnByb3AgPT09IDUuIEFjdHVhbDogX19vYmoucHJvcCA9PT0nK19fb2JqLnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAodHlwZW9mIF9fZnVuYyAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzM6IHR5cGVvZiBfX2Z1bmMgPT09ICJ1bmRlZmluZWQiLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"FunctionExpression within a new statement is admitted","description":"Using \"var __obj = new function __func(arg){this.prop=arg;}(5)\" as FunctionExpression","path":"TestCases/ch13/13.2/S13.2.2_A16_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gd2l0aGluIGEgbmV3IHN0YXRlbWVudCBpcyBhZG1pdHRlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTZfVDMuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nICJpcyBfX29iaiA9IG5ldyBmdW5jdGlvbiBfX2Z1bmMoYXJnKXt0aGlzLnByb3A9YXJnOyByZXR1cm4ge2ZlYXQ6ICsrYXJnfX0oNSkiIGFzIEZ1bmN0aW9uRXhwcmVzc2lvbgogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJ1bmRlZmluZWQiKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19mdW5jID09PSAidW5kZWZpbmVkIicpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fb2JqID0gbmV3IGZ1bmN0aW9uIF9fZnVuYyhhcmcpe3RoaXMucHJvcD1hcmc7IHJldHVybiB7ZmVhdDogKythcmd9fSg1KTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLnByb3AgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMjogX19vYmoucHJvcCA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fb2JqLnByb3AgPT09JytfX29iai5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKF9fb2JqLmZlYXQgIT09IDYpIHsKCSRFUlJPUignIzM6IF9fb2JqLmZlYXQgPT09IDYuIEFjdHVhbDogX19vYmouZmVhdCA9PT0nK19fb2JqLmZlYXQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNAppZiAodHlwZW9mIF9fZnVuYyAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzQ6IHR5cGVvZiBfX2Z1bmMgPT09ICJ1bmRlZmluZWQiLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"FunctionExpression within a new statement is admitted","description":"Using \"is __obj = new function __func(arg){this.prop=arg; return {feat: ++arg}}(5)\" as FunctionExpression","path":"TestCases/ch13/13.2/S13.2.2_A16_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gY29udGFpbmluZyAid2l0aCIgc3RhdGVtZW50IGlzIGFkbWl0dGVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExN19UMi5qcwogKiBAZGVzY3JpcHRpb24gVGhyb3dpbmcgYW4gZXhjZXB0aW9uIHdpdGhpbiAid2l0aCIgc3RhdGVtZW50CiAqLwoKdGhpcy5wMT0iYWxlcnQiOwoKX19vYmo9e3AxOjEsZ2V0UmlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gInJpZ2h0Ijt9fTsKCmdldFJpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuICJuYXByYXZvIjt9OwoKdHJ5IHsKCShmdW5jdGlvbigpewogICAgICAgIHdpdGgoX19vYmopewogICAgICAgICAgICBwMT0idzEiOwogICAgICAgICAgICBnZXRSaWdodD1mdW5jdGlvbigpe3JldHVybiBmYWxzZTt9CiAgICAgICAgICAgIHRocm93IHAxOwogICAgICAgIH0KICAgIH0pKCk7Cn0gY2F0Y2ggKGUpIHsKCXJlc3VrdCA9IHAxOwp9CgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAocDEhPT0iYWxlcnQiKSB7CgkkRVJST1IoJyMxOiBwMSA9PT0gImFsZXJ0Ii4gQWN0dWFsOiBwMT09PScrcDEpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoZ2V0UmlnaHQoKSE9PSJuYXByYXZvIikgewoJJEVSUk9SKCcjMjogZ2V0UmlnaHQoKSA9PT0gIm5hcHJhdm8iLiBBY3R1YWw6IGdldFJpZ2h0KCkgPT09ICcrZ2V0UmlnaHQoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmIChfX29iai5wMSE9PSJ3MSIpIHsKCSRFUlJPUignIzM6IF9fb2JqLnAxID09PSAidzEiLiBBY3R1YWw6IF9fb2JqLnAxID09PScrX19vYmoucDEpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNAppZiAoX19vYmouZ2V0UmlnaHQoKSE9PWZhbHNlKSB7CgkkRVJST1IoJyM0OiBfX29iai5nZXRSaWdodCgpID09PSBmYWxzZS4gQWN0dWFsOiBfX29iai5nZXRSaWdodCgpID09PSAnK19fb2JqLmdldFJpZ2h0KCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNQppZiAocmVzdWt0ICE9PSAiYWxlcnQiKSB7CgkkRVJST1IoJyM1OiByZXN1a3QgPT09ICJhbGVydCIuIEFjdHVhbDogcmVzdWt0ID09PScrcmVzdWt0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciByZXN1a3Q7CgoK","commentary":"FunctionExpression containing \"with\" statement is admitted","description":"Throwing an exception within \"with\" statement","path":"TestCases/ch13/13.2/S13.2.2_A17_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gY29udGFpbmluZyAid2l0aCIgc3RhdGVtZW50IGlzIGFkbWl0dGVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExN19UMy5qcwogKiBAZGVzY3JpcHRpb24gSW4gdGhlIGNoZWNrIDQgd2UgcG9wdWxhdGUgZmllbGQgZ2V0UmlnaHQgaW4gX19vYmogb2JqZWN0IHNpbmNlIHZhciBnZXRSaWdodCBkZWNsYXJhdGlvbiBhZGRzIHZhcmlhYmxlIHRvIGZ1bmN0aW9uIHNjb3BlCiAqIGJ1dCBnZXRSaWdodCBpbiBzdGF0ZW1lbnQgcmVzb2x2ZXMgd2l0aGluIHdpdGgoX19vYmopIHNjb3BlIGFuZCBzZWFyY2hzIGdldFJpZ2h0IGluIF9fb2JqIGZpcnN0CiAqLwoKcDE9ImFsZXJ0IjsKCnRoaXMuX19vYmo9e3AxOjEsZ2V0UmlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gInJpZ2h0Ijt9fTsKCnZhciBnZXRSaWdodD1mdW5jdGlvbigpe3JldHVybiAibmFwcmF2byI7fTsKCnJlc3VrdD0oZnVuY3Rpb24oKXsKICAgIHdpdGgoX19vYmopewogICAgICAgIHAxPSJ3MSI7CiAgICAgICAgdmFyIGdldFJpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlO307CiAgICAgICAgcmV0dXJuIHAxOwogICAgfQp9KSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAocDEhPT0iYWxlcnQiKSB7CgkkRVJST1IoJyMxOiBwMSA9PT0gImFsZXJ0Ii4gQWN0dWFsOiBwMT09PScrcDEpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoZ2V0UmlnaHQoKSE9PSJuYXByYXZvIikgewoJJEVSUk9SKCcjMjogZ2V0UmlnaHQoKSA9PT0gIm5hcHJhdm8iLiBBY3R1YWw6IGdldFJpZ2h0KCk9PT0nK2dldFJpZ2h0KCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19vYmoucDEhPT0idzEiKSB7CgkkRVJST1IoJyMzOiBfX29iai5wMSA9PT0gIncxIi4gQWN0dWFsOiBfX29iai5wMSA9PT0nK19fb2JqLnAxKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzQKaWYgKF9fb2JqLmdldFJpZ2h0KCkhPT1mYWxzZSkgewoJJEVSUk9SKCcjNDogX19vYmouZ2V0UmlnaHQoKSA9PT0gZmFsc2UuIEFjdHVhbDogX19vYmouZ2V0UmlnaHQoKT09PScrX19vYmouZ2V0UmlnaHQoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM1CmlmIChyZXN1a3QgIT09ICJ3MSIpIHsKCSRFUlJPUignIzU6IHJlc3VrdCA9PT0gIncxIi4gQWN0dWFsOiByZXN1a3QgPT09JytyZXN1a3QpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIHJlc3VrdDsKCgo=","commentary":"FunctionExpression containing \"with\" statement is admitted","description":"In the check 4 we populate field getRight in __obj object since var getRight declaration adds variable to function scope\nbut getRight in statement resolves within with(__obj) scope and searchs getRight in __obj first","path":"TestCases/ch13/13.2/S13.2.2_A17_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBVc2luZyBhcmd1bWVudHMgb2JqZWN0IHdpdGhpbiBhICJ3aXRoIiBFeHByZXNzaW9uIHRoYXQgaXMgbmVzdGVkIGluIGEgZnVuY3Rpb24gaXMgYWRtaXR0ZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTE4X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBPYmplY3QgaXMgZGVjbGFyZWQgd2l0aCAidmFyIF9fb2JqPXtjYWxsZWU6ImEifSIKICovCgp2YXIgY2FsbGVlPTAsIGI7Cgp2YXIgX19vYmo9e2NhbGxlZToiYSJ9OwoKcmVzdWx0PShmdW5jdGlvbigpewogICAgd2l0aCAoYXJndW1lbnRzKXsKICAgICAgICBjYWxsZWU9MTsKICAgICAgICBiPXRydWU7CiAgICB9CiAgICByZXR1cm4gYXJndW1lbnRzOwp9KShfX29iaik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChjYWxsZWUgIT09IDApIHsKCSRFUlJPUignIzE6IGNhbGxlZSA9PT0gMC4gQWN0dWFsOiBjYWxsZWUgPT09JytjYWxsZWUpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19vYmouY2FsbGVlICE9PSAiYSIpIHsKCSRFUlJPUignIzI6IF9fb2JqLmNhbGxlZSA9PT0gImEiLiBBY3R1YWw6IF9fb2JqLmNhbGxlZT09PScrX19vYmouY2FsbGVlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKHJlc3VsdC5jYWxsZWUgIT09IDEpIHsKCSRFUlJPUignIzM6IHJlc3VsdC5jYWxsZWUgPT09IDEuIEFjdHVhbDogcmVzdWx0LmNhbGxlZSA9PT0nK3Jlc3VsdC5jYWxsZWUpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNAppZiAoISh0aGlzLmIpKSB7CgkkRVJST1IoJyM0OiB0aGlzLmIgPT09IHRydWUuIEFjdHVhbDogdGhpcy5iID09PScrdGhpcy5iKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Using arguments object within a \"with\" Expression that is nested in a function is admitted","description":"Object is declared with \"var __obj={callee:\"a\"}\"","path":"TestCases/ch13/13.2/S13.2.2_A18_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBVc2luZyBhcmd1bWVudHMgb2JqZWN0IHdpdGhpbiBhICJ3aXRoIiBFeHByZXNzaW9uIHRoYXQgaXMgbmVzdGVkIGluIGEgZnVuY3Rpb24gaXMgYWRtaXR0ZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTE4X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBPYmplY3QgaXMgZGVjbGFyZWQgd2l0aCAiX19vYmo9e2NhbGxlZToiYSJ9IgogKi8KCnRoaXMuY2FsbGVlID0gMDsKdmFyIGI7CgpfX29iaj17Y2FsbGVlOiJhIn07CgpmdW5jdGlvbiBmKCl7CiAgICB3aXRoIChhcmd1bWVudHMpewogICAgICAgIGNhbGxlZT0xOwogICAgICAgIGI9dHJ1ZTsKICAgICAgICByZXR1cm4gYXJndW1lbnRzOwogICAgfQp9OwoKcmVzdWx0PWYoX19vYmopOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoY2FsbGVlICE9PSAwKSB7CgkkRVJST1IoJyMxOiBjYWxsZWUgPT09IDAuIEFjdHVhbDogY2FsbGVlID09PScrY2FsbGVlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLmNhbGxlZSAhPT0gImEiKSB7CgkkRVJST1IoJyMyOiBfX29iai5jYWxsZWUgPT09ICJhIi4gQWN0dWFsOiBfX29iai5jYWxsZWUgPT09JytfX29iai5jYWxsZWUpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAocmVzdWx0LmNhbGxlZSAhPT0gMSkgewoJJEVSUk9SKCcjMzogcmVzdWx0LmNhbGxlZSA9PT0gMS4gQWN0dWFsOiByZXN1bHQuY2FsbGVlID09PScrcmVzdWx0LmNhbGxlZSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM0CmlmICghKHRoaXMuYikpIHsKCSRFUlJPUignIzQ6IHRoaXMuYiA9PT0gdHJ1ZS4gQWN0dWFsOiB0aGlzLmIgPT09Jyt0aGlzLmIpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Using arguments object within a \"with\" Expression that is nested in a function is admitted","description":"Object is declared with \"__obj={callee:\"a\"}\"","path":"TestCases/ch13/13.2/S13.2.2_A18_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDEuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBnbG9iYWwgc2NvcGUKICovCgp2YXIgYSA9IDE7Cgp2YXIgX19mdW5jPSBmdW5jdGlvbigpe3JldHVybiBhO307Cgp2YXIgX19vYmogPSB7YToyfTsKCndpdGggKF9fb2JqKQp7CiAgICByZXN1bHQgPSBfX2Z1bmMoKTsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAocmVzdWx0ICE9PSAxKSB7CgkkRVJST1IoJyMxOiByZXN1bHQgPT09IDEuIEFjdHVhbDogcmVzdWx0ID09PScrcmVzdWx0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Function's scope chain is started when it is declared","description":"Function is declared in the global scope","path":"TestCases/ch13/13.2/S13.2.2_A19_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDIuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBvYmplY3Qgc2NvcGUuIFVzaW5nICJ3aXRoIiBzdGF0ZW1lbnQKICovCgp2YXIgYSA9IDE7Cgp2YXIgX19vYmogPSB7YToyfTsKCndpdGggKF9fb2JqKQp7CiAgICByZXN1bHQgPSAoZnVuY3Rpb24oKXtyZXR1cm4gYTt9KSgpOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChyZXN1bHQgIT09IDIpIHsKCSRFUlJPUignIzE6IHJlc3VsdCA9PT0gMi4gQWN0dWFsOiByZXN1bHQgPT09JytyZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Function's scope chain is started when it is declared","description":"Function is declared in the object scope. Using \"with\" statement","path":"TestCases/ch13/13.2/S13.2.2_A19_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDMuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBvYmplY3Qgc2NvcGUgYW5kIHRoZW4gYW4gZXhjZXB0aW9uIGlzIHRocm93bgogKi8KCnZhciBhID0gMTsKCnZhciBfX29iaiA9IHthOjJ9OwoKdHJ5IHsKCXdpdGggKF9fb2JqKQogICAgewogICAgICAgIHZhciBfX2Z1bmMgPSBmdW5jdGlvbiAoKXtyZXR1cm4gYTt9OwogICAgICAgIHRocm93IDM7CiAgICB9Cn0gY2F0Y2ggKGUpIHsKCTsKfQoKcmVzdWx0ID0gX19mdW5jKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChyZXN1bHQgIT09IDIpIHsKCSRFUlJPUignIzE6IHJlc3VsdCA9PT0gMi4gQWN0dWFsOiByZXN1bHQgPT09JytyZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoK","commentary":"Function's scope chain is started when it is declared","description":"Function is declared in the object scope and then an exception is thrown","path":"TestCases/ch13/13.2/S13.2.2_A19_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDQuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBoaWVyYXJjaGljYWwgb2JqZWN0IHNjb3BlIGFuZCB0aGVuIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24KICovCgp2YXIgYSA9IDE7Cgp2YXIgX19vYmogPSB7YToyLF9fb2JqOnthOjN9fTsKCnRyeSB7Cgl3aXRoIChfX29iaikKICAgIHsKICAgICAgICB3aXRoKF9fb2JqKXsKICAgICAgICAgICAgdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCl7cmV0dXJuIGE7fTsKICAgICAgICAgICAgdGhyb3cgNTsKICAgICAgICB9CiAgICB9Cn0gY2F0Y2ggKGUpIHsKCTsKfQoKcmVzdWx0ID0gX19mdW5jKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChyZXN1bHQgIT09IDMpIHsKCSRFUlJPUignIzE6IHJlc3VsdCA9PT0gMy4gQWN0dWFsOiByZXN1bHQgPT09JytyZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoK","commentary":"Function's scope chain is started when it is declared","description":"Function is declared in the hierarchical object scope and then an exception is thrown","path":"TestCases/ch13/13.2/S13.2.2_A19_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDUuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBvYmplY3Qgc2NvcGUsIHRoZW4gYW4gZXhjZXB0aW9uIGlzIHRocm93biBhbmQgdGhlIG9iamVjdCBpcyBkZWxldGVkCiAqLwoKdmFyIGEgPSAxOwoKdmFyIF9fb2JqID0ge2E6Mn07Cgp3aXRoIChfX29iaikKewogICAgdHJ5IHsKICAgICAgICAKICAgIAl2YXIgX19mdW5jID0gZnVuY3Rpb24oKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIGE7CiAgICAgICAgfQogICAgICAgIHRocm93IDM7CiAgICB9IGNhdGNoIChlKSB7CiAgICAJOwogICAgfQp9CgpkZWxldGUgX19vYmo7CgpyZXN1bHQgPSBfX2Z1bmMoKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHJlc3VsdCAhPT0gMikgewoJJEVSUk9SKCcjMTogcmVzdWx0ID09PSAyLiBBY3R1YWw6IHJlc3VsdCA9PT0nK3Jlc3VsdCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Function's scope chain is started when it is declared","description":"Function is declared in the object scope, then an exception is thrown and the object is deleted","path":"TestCases/ch13/13.2/S13.2.2_A19_T5.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDYuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSAib2JqZWN0LT5kby13aGlsZSIgc2NvcGUsIHRoZW4gdGhlIG9iamVjdCBpcyBkZWxldGVkIGFuZCBhbm90aGVyIG9iamVjdCB3aXRoIHRoZSBzYW1lIG5hbWUgaXMgZGVjbGFyZWQKICovCgp2YXIgYSA9IDE7Cgp2YXIgX19vYmogPSB7YToyfTsKCndpdGggKF9fb2JqKQp7CiAgICBkbyB7CiAgICAgICAgdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBhOwogICAgICAgIH0KICAgIH0gd2hpbGUoMCk7Cn0KCmRlbGV0ZSBfX29iajsKCnZhciBfX29iaiA9IHthOjN9OwoKd2l0aCAoX19vYmopCnsKICAgIHJlc3VsdCA9IF9fZnVuYygpOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChyZXN1bHQgIT09IDIpIHsKCSRFUlJPUignIzE6IHJlc3VsdCA9PT0gMi4gQWN0dWFsOiByZXN1bHQgPT09JytyZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoKCgo=","commentary":"Function's scope chain is started when it is declared","description":"Function is declared in the \"object->do-while\" scope, then the object is deleted and another object with the same name is declared","path":"TestCases/ch13/13.2/S13.2.2_A19_T6.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDcuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBvYmplY3Qgc2NvcGUgYXMgYSB2YXJpYWJsZQogKi8KCnZhciBhID0gMTsKCnZhciBfX29iaiA9IHthOjJ9OwoKd2l0aCAoX19vYmopCnsKICAgIHZhciBfX2Z1bmMgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuIGE7CiAgICB9Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fb2JqLmhhc093blByb3BlcnR5KCdfX2Z1bmMnKSkgewoJJEVSUk9SKCcjMTogX19vYmouaGFzT3duUHJvcGVydHkoXCdfX2Z1bmNcJykgPT09IGZhbHNlJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoISh0aGlzLmhhc093blByb3BlcnR5KCdfX2Z1bmMnKSkpIHsKCSRFUlJPUignIzI6IHRoaXMuaGFzT3duUHJvcGVydHkoXCdfX2Z1bmNcJykgPT09IHRydWUnKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKF9fZnVuYyBpbiBfX29iaikgewoJJEVSUk9SKCcjMzogKF9fZnVuYyBpbiBfX29iaikgPT09IGZhbHNlJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM0CmlmICh0aGlzLl9fZnVuYyA9PT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyM0OiB0aGlzLl9fZnVuYyAhPT0gdW5kZWZpbmVkJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Function's scope chain is started when it is declared","description":"Function is declared in the object scope as a variable","path":"TestCases/ch13/13.2/S13.2.2_A19_T7.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDguanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIG11bHRpcGx5IHRpbWVzCiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMAppZiAodHlwZW9mIF9fZnVuYyAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzA6IHR5cGVvZiBfX2Z1bmMgPT09ICJ1bmRlZmluZWQiLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBhID0gMSwgYiA9ICJhIjsKCnZhciBfX29iaiA9IHthOjJ9OwoKd2l0aCAoX19vYmopCnsKICAgIHdoaWxlKDEpewogICAgICAgIHZhciAgX19mdW5jID0gZnVuY3Rpb24oKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIGE7CiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgIH0KfQoKZGVsZXRlIF9fb2JqOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKCkgIT09IDIpIHsKCSRFUlJPUignIzE6IF9fZnVuYygpID09PSAyLiBBY3R1YWw6IF9fZnVuYygpID09PScrX19mdW5jKCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fb2JqID0ge2E6MyxiOiJiIn07Cgp3aXRoIChfX29iaikKewogICAgdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gYjsKICAgIH0KfQoKZGVsZXRlIF9fb2JqOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCkhPT0iYiIpIHsKCSRFUlJPUignIzI6IF9fZnVuYygpPT09ImIiLiBBY3R1YWw6IF9fZnVuYygpPT09JytfX2Z1bmMoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgp3aXRoICh7YTo5OSxiOiJjIn0pCnsKICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgLy9DSEVDSyMzCiAgICBpZiAoX19mdW5jKCkgIT09ICJiIikgewogICAgCSRFUlJPUignIzM6IF9fZnVuYygpPT09ImIiLiBBY3R1YWw6IF9fZnVuYygpPT09JytfX2Z1bmMoKSk7CiAgICB9CiAgICAvLwogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCn0KCg==","commentary":"Function's scope chain is started when it is declared","description":"Function is declared multiply times","path":"TestCases/ch13/13.2/S13.2.2_A19_T8.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhIGZ1bmN0aW9uIGlzIGFuIG9iamVjdCwgaXQgbWlnaHQgYmUgc2V0IHRvIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgYSBuZXcgY3JlYXRlZCBvYmplY3QgdGhyb3VnaCBbW0NvbnN0cnVjdF1dIHByb3BlcnR5CiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMoKSIKICovCgp2YXIgX19NT05TVEVSPSJtb25zdGVyIjsKdmFyIF9fUFJFREFUT1I9InByZWRhdG9yIjsKCmZ1bmN0aW9uIF9fUFJPVE8oKXt9OwoKdHJ5ewogICAgX19QUk9UTy50eXBlPV9fTU9OU1RFUjsKfQpjYXRjaChlKXsKICAgICRFUlJPUignIzA6IF9fUFJPVE8udHlwZT1fX01PTlNURVIgZG9lcyBub3QgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKQp9CgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXt0aGlzLm5hbWU9X19QUkVEQVRPUn07CgpfX0ZBQ1RPUlkucHJvdG90eXBlPV9fUFJPVE87Cgp2YXIgX19tb25zdGVyID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIShfX1BST1RPLmlzUHJvdG90eXBlT2YoX19tb25zdGVyKSkpIHsKCSRFUlJPUignIzE6IF9fUFJPVE8uaXNQcm90b3R5cGVPZihfX21vbnN0ZXIpIG11c3QgYmUgdHJ1ZScpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19tb25zdGVyLnR5cGUgIT09X19NT05TVEVSKSB7CgkkRVJST1IoJyMyOiBfX21vbnN0ZXIudHlwZSA9PT1fX01PTlNURVIuIEFjdHVhbDogX19tb25zdGVyLnR5cGUgPT09JytfX21vbnN0ZXIudHlwZSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Since a function is an object, it might be set to [[Prototype]] property of a new created object through [[Construct]] property","description":"Declaring a function with \"function __func()\"","path":"TestCases/ch13/13.2/S13.2.2_A1_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhIGZ1bmN0aW9uIGlzIGFuIG9iamVjdCwgaXQgbWlnaHQgYmUgc2V0IHRvIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgYSBuZXcgY3JlYXRlZCBvYmplY3QgdGhyb3VnaCBbW0NvbnN0cnVjdF1dIHByb3BlcnR5CiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJ2YXIgX19QUk9UTyA9IGZ1bmN0aW9uKCkiCiAqLwoKdmFyIF9fTU9OU1RFUj0ibW9uc3RlciI7CnZhciBfX1BSRURBVE9SPSJwcmVkYXRvciI7Cgp2YXIgX19QUk9UTyA9IGZ1bmN0aW9uKCl7fTsKCnRyeXsKICAgIF9fUFJPVE8udHlwZT1fX01PTlNURVI7Cn0KY2F0Y2goZSl7CiAgICAkRkFJTCgnIzA6IF9fUFJPVE8udHlwZT1fX01PTlNURVIgZG9lcyBub3QgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKQp9Cgp2YXIgX19GQUNUT1JZID0gZnVuY3Rpb24oKXt0aGlzLm5hbWU9X19QUkVEQVRPUn07CgpfX0ZBQ1RPUlkucHJvdG90eXBlPV9fUFJPVE87Cgp2YXIgX19tb25zdGVyID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIShfX1BST1RPLmlzUHJvdG90eXBlT2YoX19tb25zdGVyKSkpIHsKCSRFUlJPUignIzE6IF9fUFJPVE8uaXNQcm90b3R5cGVPZihfX21vbnN0ZXIpIG11c3QgYmUgdHJ1ZScpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19tb25zdGVyLnR5cGUgIT09X19NT05TVEVSKSB7CgkkRVJST1IoJyMyOiBfX21vbnN0ZXIudHlwZSA9PT1fX01PTlNURVIuIEFjdHVhbDogX19tb25zdGVyLnR5cGUgPT09JytfX21vbnN0ZXIudHlwZSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Since a function is an object, it might be set to [[Prototype]] property of a new created object through [[Construct]] property","description":"Declaring a function with \"var __PROTO = function()\"","path":"TestCases/ch13/13.2/S13.2.2_A1_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhIGZ1bmN0aW9uIGlzIGFuIG9iamVjdCwgaXQgbWlnaHQgYmUgc2V0IHRvIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgYSBuZXcgY3JlYXRlZCBvYmplY3QgdGhyb3VnaCBbW0NvbnN0cnVjdF1dIHByb3BlcnR5LAogKiBidXQgW1tjYWxsXV0gcHJvcGVydHkgbXVzdCBmYWlsIHdpdGggVHlwZUVycm9yIGVycm9yCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0EyLmpzCiAqIEBkZXNjcmlwdGlvbiBUcnlpbmcgdG8gW1tjYWxsXV0gdGhpcyBmdW5jdGlvbgogKi8KCnZhciBfX1BMQU5UPSJmbG93ZXIiOwp2YXIgX19ST1NFPSJyb3NlIjsKCmZ1bmN0aW9uIF9fUFJPVE8oKXt9OwoKdHJ5ewogICAgX19QUk9UTy50eXBlPV9fUExBTlQ7Cn0KY2F0Y2goZSl7CiAgICAkRVJST1IoJyMwOiBfX1BST1RPLnR5cGU9X19QTEFOVCBkb2VzIG5vdCBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpCn0KCmZ1bmN0aW9uIF9fRkFDVE9SWSgpe3RoaXMubmFtZT1fX1JPU0V9OwoKX19GQUNUT1JZLnByb3RvdHlwZT1fX1BST1RPOwoKdmFyIF9fcm9zZSA9IG5ldyBfX0ZBQ1RPUlkoKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5ewogICAgX19yb3NlKCk7CiAgICAkRVJST1IoJyMxOiBfX3Jvc2UoKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoKGUpewogICAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAgIAkkRVJST1IoJyMyOiBFeGNlcHRpb24gVHlwZSBpcyBUeXBlRXJyb3IuIEFjdHVhbDogZXhjZXB0aW9uID09PScrZSk7CiAgICB9Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Since a function is an object, it might be set to [[Prototype]] property of a new created object through [[Construct]] property,\nbut [[call]] property must fail with TypeError error","description":"Trying to [[call]] this function","path":"TestCases/ch13/13.2/S13.2.2_A2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEl0IGdldHMgdGhlIHZhbHVlIG9mIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBGKERlbm90ZSBpdCBQUk9UT19WQUwpLgogKiBJZiBQUk9UT19WQUwgaXMgbm90IGFuIG9iamVjdCwgc2V0cyB0aGUgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QganVzdCBjcmVhdGVkCiAqICB0byB0aGUgb3JpZ2luYWwgT2JqZWN0IHByb3RvdHlwZSBvYmplY3QgYXMgZGVzY3JpYmVkIGluIDE1LjIuMy4xCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0EzX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX0ZBQ1RPUlkoKSIKICovCgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXt9OwpfX0ZBQ1RPUlkucHJvdG90eXBlPTE7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19GQUNUT1JZLnByb3RvdHlwZSAhPT0gJ251bWJlcicpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlID09PSBcJ251bWJlclwnLiBBY3R1YWw6IHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlID09PScrKHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgp2YXIgX19kZXZpY2UgPSBuZXcgX19GQUNUT1JZKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICghKE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihfX2RldmljZSkpKSB7CgkkRVJST1IoJyMyOiBPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoX19kZXZpY2UpID09PSB0cnVlJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nIt gets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL).\nIf PROTO_VAL is not an object, sets the [[Prototype]] property of native ECMAScript object just created\n to the original Object prototype object as described in 15.2.3.1","description":"Declaring a function with \"function __FACTORY()\"","path":"TestCases/ch13/13.2/S13.2.2_A3_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEl0IGdldHMgdGhlIHZhbHVlIG9mIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBGKERlbm90ZSBpdCBQUk9UT19WQUwpLgogKiBJZiBQUk9UT19WQUwgaXMgbm90IGFuIG9iamVjdCwgc2V0cyB0aGUgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QganVzdCBjcmVhdGVkCiAqICB0byB0aGUgb3JpZ2luYWwgT2JqZWN0IHByb3RvdHlwZSBvYmplY3QgYXMgZGVzY3JpYmVkIGluIDE1LjIuMy4xCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0EzX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJ2YXIgX19GQUNUT1JZID0gZnVuY3Rpb24oKSIKICovCgp2YXIgX19GQUNUT1JZID0gZnVuY3Rpb24oKXt9OwpfX0ZBQ1RPUlkucHJvdG90eXBlPTE7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19GQUNUT1JZLnByb3RvdHlwZSAhPT0gJ251bWJlcicpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlID09PSBcJ251bWJlclwnLiBBY3R1YWw6IHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlID09PScrKHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgp2YXIgX19kZXZpY2UgPSBuZXcgX19GQUNUT1JZKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICghKE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihfX2RldmljZSkpKSB7CgkkRVJST1IoJyMyOiBPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoX19kZXZpY2UpID09PSB0cnVlJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nIt gets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL).\nIf PROTO_VAL is not an object, sets the [[Prototype]] property of native ECMAScript object just created\n to the original Object prototype object as described in 15.2.3.1","description":"Declaring a function with \"var __FACTORY = function()\"","path":"TestCases/ch13/13.2/S13.2.2_A3_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBGKERlbm90ZSBpdCBQUk9UT19WQUwpLgogKiBJZiBQUk9UT19WQUwgaXMgYW4gb2JqZWN0LCBzZXRzIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdCBqdXN0IGNyZWF0ZWQKICogdG8gdGhlIFBST1RPX1ZBTAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BNF9UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiZnVuY3Rpb24gX19GQUNUT1JZKCkiCiAqLwoKdmFyIF9fQ1VCRT0iY3ViZSI7CgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXsKfTsKX19GQUNUT1JZLnByb3RvdHlwZT17IHNoYXBlOl9fQ1VCRSwgcHJpbnRTaGFwZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYXBlO30gfTsKCnZhciBfX2RldmljZSA9IG5ldyBfX0ZBQ1RPUlkoKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZGV2aWNlLnByaW50U2hhcGUgPT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19kZXZpY2UucHJpbnRTaGFwZSAhPT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fZGV2aWNlLnByaW50U2hhcGUgPT09JytfX2RldmljZS5wcmludFNoYXBlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZGV2aWNlLnByaW50U2hhcGUoKSAhPT0gX19DVUJFKSB7CgkkRVJST1IoJyMyOiBfX2RldmljZS5wcmludFNoYXBlKCkgPT09IF9fQ1VCRS4gQWN0dWFsOiBfX2RldmljZS5wcmludFNoYXBlKCkgPT09JytfX2RldmljZS5wcmludFNoYXBlKCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nGets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL).\nIf PROTO_VAL is an object, sets the [[Prototype]] property of native ECMAScript object just created\nto the PROTO_VAL","description":"Declaring a function with \"function __FACTORY()\"","path":"TestCases/ch13/13.2/S13.2.2_A4_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBGKERlbm90ZSBpdCBQUk9UT19WQUwpLgogKiBJZiBQUk9UT19WQUwgaXMgYW4gb2JqZWN0LCBzZXRzIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdCBqdXN0IGNyZWF0ZWQKICogdG8gdGhlIFBST1RPX1ZBTAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BNF9UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiX19GQUNUT1JZID0gZnVuY3Rpb24oKSIKICovCgpfX0NVQkU9ImN1YmUiOwoKX19GQUNUT1JZID0gZnVuY3Rpb24oKXt9OwoKX19GQUNUT1JZLnByb3RvdHlwZT17IHNoYXBlOl9fQ1VCRSwgcHJpbnRTaGFwZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYXBlO30gfTsKCl9fZGV2aWNlID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19kZXZpY2UucHJpbnRTaGFwZSA9PT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2RldmljZS5wcmludFNoYXBlICE9PSB1bmRlZmluZWQuIEFjdHVhbDogX19kZXZpY2UucHJpbnRTaGFwZSA9PT0nK19fZGV2aWNlLnByaW50U2hhcGUpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19kZXZpY2UucHJpbnRTaGFwZSgpICE9PSBfX0NVQkUpIHsKCSRFUlJPUignIzI6IF9fZGV2aWNlLnByaW50U2hhcGUoKSA9PT0gX19DVUJFLiBBY3R1YWw6IF9fZGV2aWNlLnByaW50U2hhcGUoKSA9PT0nK19fZGV2aWNlLnByaW50U2hhcGUoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nGets the value of the [[Prototype]] property of the F(Denote it PROTO_VAL).\nIf PROTO_VAL is an object, sets the [[Prototype]] property of native ECMAScript object just created\nto the PROTO_VAL","description":"Declaring a function with \"__FACTORY = function()\"","path":"TestCases/ch13/13.2/S13.2.2_A4_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdCBqdXN0IGNyZWF0ZWQgYXMgdGhlIHRoaXMgdmFsdWUgYW5kCiAqIHByb3ZpZGluZyB0aGUgYXJndW1lbnQgbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTVfVDEuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggImZ1bmN0aW9uIF9fRkFDVE9SWShhcmcxLCBhcmcyKSIKICovCgpfX1ZPTFVNRT04OwpfX1JFRD0icmVkIjsKX19JRD0xMjM0MjsKX19UT1A9MS4xOwpfX0JPVFRPTT0wLjA7Cl9fTEVGVD0wLjA7CgoKZnVuY3Rpb24gX19GQUNUT1JZKGFyZzEsIGFyZzIpewoJdGhpcy52b2x1bWU9X19WT0xVTUU7Cgljb2xvcj1fX1JFRDsKCXRoaXMuaWQ9YXJnMTsKCXRvcD1hcmcyOwoJdGhpcy5ib3R0b209YXJndW1lbnRzWzNdOwoJbGVmdD1hcmd1bWVudHNbNF07Cn07CgpfX2RldmljZSA9IG5ldyBfX0ZBQ1RPUlkoX19JRCwgX19UT1AsIF9fQk9UVE9NLCBfX0xFRlQpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19kZXZpY2UuY29sb3IgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19kZXZpY2UuY29sb3IgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiBfX2RldmljZS5jb2xvciA9PT0nK19fZGV2aWNlLmNvbG9yKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZGV2aWNlLnZvbHVtZSAhPT0gX19WT0xVTUUpIHsKCSRFUlJPUignIzI6IF9fZGV2aWNlLnZvbHVtZSA9PT0gX19WT0xVTUUuIEFjdHVhbDogX19kZXZpY2Uudm9sdW1lID09PScrX19kZXZpY2Uudm9sdW1lKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKF9fZGV2aWNlLnRvcCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMzOiBfX2RldmljZS50b3AgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiBfX2RldmljZS50b3AgPT09JytfX2RldmljZS50b3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNAppZiAoX19kZXZpY2UuaWQgIT09IF9fSUQpIHsKCSRFUlJPUignIzQ6IF9fZGV2aWNlLmlkID09PSBfX0lELiBBY3R1YWw6IF9fZGV2aWNlLmlkID09PScrX19kZXZpY2UuaWQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNQppZiAoX19kZXZpY2UubGVmdCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyM1OiBfX2RldmljZS5sZWZ0ID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19kZXZpY2UubGVmdCA9PT0nK19fZGV2aWNlLmxlZnQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNgppZiAoX19kZXZpY2UuYm90dG9tICE9PSBfX0JPVFRPTSkgewoJJEVSUk9SKCcjNjogX19kZXZpY2UuYm90dG9tID09PSBfX0JPVFRPTS4gQWN0dWFsOiBfX2RldmljZS5ib3R0b20gPT09JytfX2RldmljZS5ib3R0b20pOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing native ECMAScript object just created as the this value and\nproviding the argument list passed into [[Construct]] as the argument values","description":"Declaring a function with \"function __FACTORY(arg1, arg2)\"","path":"TestCases/ch13/13.2/S13.2.2_A5_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdCBqdXN0IGNyZWF0ZWQgYXMgdGhlIHRoaXMgdmFsdWUgYW5kCiAqIHByb3ZpZGluZyB0aGUgYXJndW1lbnQgbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTVfVDIuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggIl9fRkFDVE9SWSA9IGZ1bmN0aW9uKGFyZzEsIGFyZzIpIgogKi8KCl9fVk9MVU1FPTg7Cl9fUkVEPSJyZWQiOwpfX0lEPTEyMzQyOwpfX1RPUD0xLjE7Cl9fQk9UVE9NPTAuMDsKX19MRUZUPTAuMDsKCgpfX0ZBQ1RPUlkgPSBmdW5jdGlvbihhcmcxLCBhcmcyKXsKCXRoaXMudm9sdW1lPV9fVk9MVU1FOwoJY29sb3I9X19SRUQ7Cgl0aGlzLmlkPWFyZzE7Cgl0b3A9YXJnMjsKCXRoaXMuYm90dG9tPWFyZ3VtZW50c1szXTsKCWxlZnQ9YXJndW1lbnRzWzRdOwp9OwoKX19kZXZpY2UgPSBuZXcgX19GQUNUT1JZKF9fSUQsIF9fVE9QLCBfX0JPVFRPTSwgX19MRUZUKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZGV2aWNlLmNvbG9yICE9PSB1bmRlZmluZWQpIHsKCSRFUlJPUignIzE6IF9fZGV2aWNlLmNvbG9yID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19kZXZpY2UuY29sb3IgPT09JytfX2RldmljZS5jb2xvcik7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2RldmljZS52b2x1bWUgIT09IF9fVk9MVU1FKSB7CgkkRVJST1IoJyMyOiBfX2RldmljZS52b2x1bWUgPT09IF9fVk9MVU1FLiBBY3R1YWw6IF9fZGV2aWNlLnZvbHVtZSA9PT0nK19fZGV2aWNlLnZvbHVtZSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmIChfX2RldmljZS50b3AgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMzogX19kZXZpY2UudG9wID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19kZXZpY2UudG9wID09PScrX19kZXZpY2UudG9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzQKaWYgKF9fZGV2aWNlLmlkICE9PSBfX0lEKSB7CgkkRVJST1IoJyM0OiBfX2RldmljZS5pZCA9PT0gX19JRC4gQWN0dWFsOiBfX2RldmljZS5pZCA9PT0nK19fZGV2aWNlLmlkKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzUKaWYgKF9fZGV2aWNlLmxlZnQgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjNTogX19kZXZpY2UubGVmdCA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fZGV2aWNlLmxlZnQgPT09JytfX2RldmljZS5sZWZ0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzYKaWYgKF9fZGV2aWNlLmJvdHRvbSAhPT0gX19CT1RUT00pIHsKCSRFUlJPUignIzY6IF9fZGV2aWNlLmJvdHRvbSA9PT0gX19CT1RUT00uIEFjdHVhbDogX19kZXZpY2UuYm90dG9tID09PScrX19kZXZpY2UuYm90dG9tKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing native ECMAScript object just created as the this value and\nproviding the argument list passed into [[Construct]] as the argument values","description":"Declaring a function with \"__FACTORY = function(arg1, arg2)\"","path":"TestCases/ch13/13.2/S13.2.2_A5_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBub3QgT2JqZWN0IHRoZW4gcmV0dXJuIHBhc3NlZCBhcyB0aGlzIGludG8gW1tDYWxsXV0gb2JqZWN0CiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0E2X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJfX2Z1bmMgPSBmdW5jdGlvbihhcmcpIgogKi8KCl9fRk9PPSJmb29WYWx1ZSI7Cl9fQkFSPSJiYXJWYWx1ZSI7CgpfX2Z1bmMgPSBmdW5jdGlvbihhcmcpewoJdGhpcy5mb289YXJnOwogICAgcmV0dXJuIDA7Cgl0aGlzLmJhcj1hcmd1bWVudHNbMV07Cn07CgpfX29iaiA9IG5ldyBfX2Z1bmMoX19GT08sIF9fQkFSKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fb2JqLmZvbyE9PV9fRk9PKSB7CgkkRVJST1IoJyMxOiBfX29iai5mb28gPT09IF9fRk9PLiBBY3R1YWw6IF9fb2JqLmZvbz09PScrX19vYmouZm9vKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLmJhciE9PXVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMjogX19vYmouYmFyID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19vYmouYmFyPT09JytfX29iai5iYXIpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument\nlist passed into [[Construct]] as the argument values.\nIf Type( [[Call]] returned) is not Object then return passed as this into [[Call]] object","description":"Declaring a function with \"__func = function(arg)\"","path":"TestCases/ch13/13.2/S13.2.2_A6_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBub3QgT2JqZWN0IHRoZW4gcmV0dXJuIHBhc3NlZCBhcyB0aGlzIGludG8gW1tDYWxsXV0gb2JqZWN0CiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0E2X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMgKGFyZykiCiAqLwoKdmFyIF9fRk9PPSJmb29WYWx1ZSI7CnZhciBfX0JBUj0iYmFyVmFsdWUiOwoKZnVuY3Rpb24gX19mdW5jIChhcmcpewoJdGhpcy5mb289YXJnOwogICAgcmV0dXJuIHRydWU7Cgl0aGlzLmJhcj1hcmd1bWVudHNbMV07Cn07Cgp2YXIgX19vYmogPSBuZXcgX19mdW5jKF9fRk9PLCBfX0JBUik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX29iai5mb28hPT1fX0ZPTykgewoJJEVSUk9SKCcjMTogX19vYmouZm9vID09PSBfX0ZPTy4gQWN0dWFsOiBfX29iai5mb289PT0nK19fb2JqLmZvbyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX29iai5iYXIhPT11bmRlZmluZWQpIHsKCSRFUlJPUignIzI6IF9fb2JqLmJhciA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fb2JqLmJhcj09PScrX19vYmouYmFyKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument\nlist passed into [[Construct]] as the argument values.\nIf Type( [[Call]] returned) is not Object then return passed as this into [[Call]] object","description":"Declaring a function with \"function __func (arg)\"","path":"TestCases/ch13/13.2/S13.2.2_A6_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBPYmplY3QgdGhlbiByZXR1cm4gdGhpcyBqdXN0IGFzIG9idGFpbmVkIG9iamVjdAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BN19UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiYXMgX19mdW5jID0gZnVuY3Rpb24oYXJnKSIKICovCgp2YXIgX19GUlNUPSJvbmUiOwp2YXIgX19TQ05EPSJ0d28iOwoKZnVuY3Rpb24gX19mdW5jIChhcmcxLCBhcmcyKXsKCXRoaXMuZmlyc3Q9YXJnMTsKCXZhciBfX29iaj17c2Vjb25kOmFyZzJ9OwogICAgcmV0dXJuIF9fb2JqOwoJCn07Cgp2YXIgX19vYmpfXyA9IG5ldyBfX2Z1bmMoX19GUlNULCBfX1NDTkQpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19vYmpfXy5maXJzdCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX29ial9fLmZpcnN0ID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19vYmpfXy5maXJzdD09PScrX19vYmpfXy5maXJzdCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX29ial9fLnNlY29uZCAhPT0gX19TQ05EKSB7CgkkRVJST1IoJyMyOiBfX29ial9fLnNlY29uZCA9PT0gX19TQ05ELiBBY3R1YWw6IF9fb2JqX18uc2Vjb25kID09PScrX19vYmpfXy5zZWNvbmQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument\nlist passed into [[Construct]] as the argument values.\nIf Type( [[Call]] returned) is an Object then return this just as obtained object","description":"Declaring a function with \"as __func = function(arg)\"","path":"TestCases/ch13/13.2/S13.2.2_A7_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBPYmplY3QgdGhlbiByZXR1cm4gdGhpcyBqdXN0IGFzIG9idGFpbmVkIG9iamVjdAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BN19UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgImZ1bmN0aW9uIGFzIGZ1bmN0aW9uIF9fZnVuYyAoYXJnKSIKICovCgpfX0ZSU1Q9Im9uZSI7Cl9fU0NORD0idHdvIjsKCl9fZnVuYyA9IGZ1bmN0aW9uKGFyZzEsIGFyZzIpewoJdGhpcy5maXJzdD1hcmcxOwoJdmFyIF9fb2JqPXtzZWNvbmQ6YXJnMn07CiAgICByZXR1cm4gX19vYmo7CgkKfTsKCl9fb2JqX18gPSBuZXcgX19mdW5jKF9fRlJTVCwgX19TQ05EKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fb2JqX18uZmlyc3QgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19vYmpfXy5maXJzdCA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fb2JqX18uZmlyc3Q9PT0nK19fb2JqX18uZmlyc3QpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19vYmpfXy5zZWNvbmQgIT09IF9fU0NORCkgewoJJEVSUk9SKCcjMjogX19vYmpfXy5zZWNvbmQgPT09IF9fU0NORC4gQWN0dWFsOiBfX29ial9fLnNlY29uZCA9PT0nK19fb2JqX18uc2Vjb25kKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument\nlist passed into [[Construct]] as the argument values.\nIf Type( [[Call]] returned) is an Object then return this just as obtained object","description":"Declaring a \"function as function __func (arg)\"","path":"TestCases/ch13/13.2/S13.2.2_A7_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBGdW5jdGlvbiB0aGVuIHJldHVybiB0aGlzIGp1c3QgYXMgb2J0YWluZWQgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQThfVDEuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGNvbnRhaW5zICJyZXR1cm4iIGZvbGxvd2VkIGJ5IGRlY2xhcmF0aW9uIG9mIGFub3RoZXIgZnVuY3Rpb24KICovCgp2YXIgX19GUlNUPSJvbmUiOwp2YXIgX19TQ05EPSJ0d28iOwoKdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKGFyZzEsIGFyZzIpewoJdGhpcy5maXJzdD1hcmcxOwoJCglfX2d1bmMucHJvcD1hcmcyOwogICAgcmV0dXJuIF9fZ3VuYzsKICAgIC8vIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCiAgICBmdW5jdGlvbiBfX2d1bmMoYXJnKXtyZXR1cm4gKythcmd9OwoJCn07Cgp2YXIgX19pbnN0YW5jZSA9IG5ldyBfX2Z1bmMoX19GUlNULCBfX1NDTkQpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19pbnN0YW5jZS5maXJzdCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2luc3RhbmNlLmZpcnN0ID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19pbnN0YW5jZS5maXJzdCA9PT0nK19faW5zdGFuY2UuZmlyc3QpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19pbnN0YW5jZS5wcm9wIT09X19TQ05EKSB7CgkkRVJST1IoJyMyOiBfX2luc3RhbmNlLnByb3AgPT09IF9fU0NORC4gQWN0dWFsOiBfX2luc3RhbmNlLnByb3AgPT09JytfX2luc3RhbmNlLnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19pbnN0YW5jZSgxKSE9PSAyKSB7CgkkRVJST1IoJyMyOiBfX2luc3RhbmNlKDEpPT09IDIuIEFjdHVhbDogX19pbnN0YW5jZSgxKSA9PT0nK19faW5zdGFuY2UoMSkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCg==","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument\nlist passed into [[Construct]] as the argument values.\nIf Type( [[Call]] returned) is an Function then return this just as obtained function","description":"Creating a function whose prototype contains \"return\" followed by declaration of another function","path":"TestCases/ch13/13.2/S13.2.2_A8_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBGdW5jdGlvbiB0aGVuIHJldHVybiB0aGlzIGp1c3QgYXMgb2J0YWluZWQgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQThfVDIuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGNvbnRhaW5zIGRlY2xhcmF0aW9uIG9mIGFub3RoZXIgZnVuY3Rpb24gZGVjbGFyZWQgYXMgYSB2YXJpYWJsZQogKi8KCnZhciBfX0ZSU1Q9Im9uZSI7CnZhciBfX1NDTkQ9InR3byI7Cgp2YXIgX19mdW5jID0gZnVuY3Rpb24oYXJnMSwgYXJnMil7Cgl0aGlzLmZpcnN0PWFyZzE7Cgl2YXIgX19ndW5jID0gZnVuY3Rpb24oYXJnKXtyZXR1cm4gYXJnKz0iQkEifTsKCV9fZ3VuYy5wcm9wPWFyZzI7CiAgICByZXR1cm4gX19ndW5jOwoJCn07Cgp2YXIgX19pbnN0YW5jZSA9IG5ldyBfX2Z1bmMoX19GUlNULCBfX1NDTkQpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19pbnN0YW5jZS5maXJzdCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2luc3RhbmNlLmZpcnN0ID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19pbnN0YW5jZS5maXJzdCA9PT0nK19faW5zdGFuY2UuZmlyc3QpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19pbnN0YW5jZS5wcm9wIT09X19TQ05EKSB7CgkkRVJST1IoJyMyOiBfX2luc3RhbmNlLnByb3AgPT09IF9fU0NORC4gQWN0dWFsOiBfX2luc3RhbmNlLnByb3AgPT09JytfX2luc3RhbmNlLnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19pbnN0YW5jZSgiU0FNIikhPT0gIlNBTUJBIikgewoJJEVSUk9SKCcjMjogX19pbnN0YW5jZSgiU0FNIikgPT09ICJTQU1CQSIuIEFjdHVhbDogX19pbnN0YW5jZSgiU0FNIikgPT09JytfX2luc3RhbmNlKCJTQU0iKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoK","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument\nlist passed into [[Construct]] as the argument values.\nIf Type( [[Call]] returned) is an Function then return this just as obtained function","description":"Creating a function whose prototype contains declaration of another function declared as a variable","path":"TestCases/ch13/13.2/S13.2.2_A8_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBGdW5jdGlvbiB0aGVuIHJldHVybiB0aGlzIGp1c3QgYXMgb2J0YWluZWQgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQThfVDMuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGNvbnRhaW5zIGRlY2xhcmF0aW9uIG9mIGFub3RoZXIgZnVuY3Rpb24gZGVmaW5lZCBieSB1c2luZyBGdW5jdGlvbi5jYWxsIG1ldGhvZAogKi8KCnZhciBfX0ZSU1Q9Im9uZSI7CnZhciBfX1NDTkQ9InR3byI7Cgp2YXIgX19mdW5jID0gZnVuY3Rpb24oYXJnMSwgYXJnMil7Cgl0aGlzLmZpcnN0PWFyZzE7Cgl2YXIgX19ndW5jID0gRnVuY3Rpb24uY2FsbCh0aGlzLCJhcmciLCJyZXR1cm4gKythcmc7Iik7CglfX2d1bmMucHJvcD1hcmcyOwogICAgcmV0dXJuIF9fZ3VuYzsKCQp9OwoKdmFyIF9faW5zdGFuY2UgPSBuZXcgX19mdW5jKF9fRlJTVCwgX19TQ05EKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9faW5zdGFuY2UuZmlyc3QgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19pbnN0YW5jZS5maXJzdCA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9faW5zdGFuY2UuZmlyc3QgPT09JytfX2luc3RhbmNlLmZpcnN0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9faW5zdGFuY2UucHJvcCE9PV9fU0NORCkgewoJJEVSUk9SKCcjMjogX19pbnN0YW5jZS5wcm9wID09PSBfX1NDTkQuIEFjdHVhbDogX19pbnN0YW5jZS5wcm9wID09PScrX19pbnN0YW5jZS5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKF9faW5zdGFuY2UoMSkhPT0gMikgewoJJEVSUk9SKCcjMjogX19pbnN0YW5jZSgxKT09PSAyLiBBY3R1YWw6IF9faW5zdGFuY2UoMSkgPT09JytfX2luc3RhbmNlKDEpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","commentary":"When the [[Construct]] property for a Function object F is called:\nA new native ECMAScript object is created.\nInvoke the [[Call]] property of F, providing just created native ECMAScript object as the this value and providing the argument\nlist passed into [[Construct]] as the argument values.\nIf Type( [[Call]] returned) is an Function then return this just as obtained function","description":"Creating a function whose prototype contains declaration of another function defined by using Function.call method","path":"TestCases/ch13/13.2/S13.2.2_A8_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBpbmFkbWlzc2libGUgYXMgbG9uZyBhcyB0aGlzLmFueV9GdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIGl0IGlzIGRlY2xhcmVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0E5LmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvcgogKi8KCmZ1bmN0aW9uIEZBQ1RPUlkoKXsKICAgdGhpcy5pZCA9IDA7CiAgIAogICB0aGlzLmlkID0gdGhpcy5mdW5jKCk7CiAgIAogICB0aGlzLmZ1bmMgPSBmdW5jdGlvbiAoKXsKICAgICAgcmV0dXJuIDU7CiAgIH0KICAKfQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCnRyeSB7Cgl2YXIgb2JqID0gbmV3IEZBQ1RPUlkoKTsKCSRFUlJPUignIzE6IHZhciBvYmogPSBuZXcgRkFDVE9SWSgpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7DQp9IGNhdGNoIChlKSB7DQogICAgaWYgKGUgaW5zdGFuY2VvZiBUZXN0MjYyRXJyb3IpIHRocm93IGU7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Calling a function as a constructor is inadmissible as long as this.any_Function is called before it is declared","description":"Calling a function as a constructor","path":"TestCases/ch13/13.2/S13.2.2_A9.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuM19BMS5qcwogKiBAZGVzY3JpcHRpb24gY2hlY2sgdGhhdCBhbGwgcG9pc29uaW5nIHVzZSB0aGUgW1tUaHJvd1R5cGVFcnJvcl1dCiAqIGZ1bmN0aW9uIG9iamVjdC4KICogQG9ubHlTdHJpY3QKICovCgoidXNlIHN0cmljdCI7CnZhciBwb2lzb24gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGZ1bmN0aW9uKCkge30sICdjYWxsZXInKS5nZXQ7CgppZiAodHlwZW9mIHBvaXNvbiAhPT0gJ2Z1bmN0aW9uJykgewogICRFUlJPUigiIzE6IEEgc3RyaWN0IGZ1bmN0aW9uJ3MgLmNhbGxlciBzaG91bGQgYmUgcG9pc29uZWQgd2l0aCBhIGZ1bmN0aW9uIik7Cn0KdmFyIHRocmV3ID0gbnVsbDsKdHJ5IHsKICBwb2lzb24oKTsKfSBjYXRjaCAoZXJyKSB7CiAgdGhyZXcgPSBlcnI7Cn0KaWYgKCF0aHJldyB8fCAhKHRocmV3IGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogICRFUlJPUigiIzI6IFBvaXNvbmVkIHByb3BlcnR5IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IiKTsKfQoKZnVuY3Rpb24gY2hlY2tQb2lzb24ob2JqLCBuYW1lKSB7CiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgbmFtZSk7CiAgaWYgKGRlc2MuZW51bWVyYWJsZSkgewogICAgJEVSUk9SKCIjMzogUG9pc29uZWQgIiArIG5hbWUgKyAiIHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSIpOwogIH0KICBpZiAoZGVzYy5jb25maWd1cmFibGUpIHsKICAgICRFUlJPUigiIzQ6IFBvaXNvbmVkICIgKyBuYW1lICsgIiBzaG91bGQgbm90IGJlIGNvbmZpZ3VyYWJsZSIpOwogIH0KICBpZiAocG9pc29uICE9PSBkZXNjLmdldCkgewogICAgJEVSUk9SKCIjNTogIiArIG5hbWUgKyAiJ3MgZ2V0dGVyIG5vdCBwb2lzb25lZCB3aXRoIHNhbWUgcG9pc29uIik7CiAgfQogIGlmIChwb2lzb24gIT09IGRlc2Muc2V0KSB7CiAgICAkRVJST1IoIiM2OiAiICsgbmFtZSArICIncyBzZXR0ZXIgbm90IHBvaXNvbmVkIHdpdGggc2FtZSBwb2lzb24iKTsKICB9Cn0KCmNoZWNrUG9pc29uKGZ1bmN0aW9uKCkge30sICdjYWxsZXInKTsKY2hlY2tQb2lzb24oZnVuY3Rpb24oKSB7fSwgJ2FyZ3VtZW50cycpOwpjaGVja1BvaXNvbigoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0pKCksICdjYWxsZXInKTsKY2hlY2tQb2lzb24oKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KSgpLCAnY2FsbGVlJyk7CmNoZWNrUG9pc29uKChmdW5jdGlvbigpIHt9KS5iaW5kKG51bGwpLCAnY2FsbGVyJyk7CmNoZWNrUG9pc29uKChmdW5jdGlvbigpIHt9KS5iaW5kKG51bGwpLCAnYXJndW1lbnRzJyk7Cgo=","commentary":"","description":"check that all poisoning use the [[ThrowTypeError]]\nfunction object.","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2.3_A1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBBICJwcm90b3R5cGUiIHByb3BlcnR5IGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBmb3IgZXZlcnkgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0ExX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBVc2luZyAiZnVuY3Rpb24gX19mdW5jKCl7fSIgYXMgYSBGdW5jdGlvbkRlY2xhcmF0aW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYy5wcm90b3R5cGUgPT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19mdW5jLnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"A \"prototype\" property is automatically created for every function","description":"Using \"function __func(){}\" as a FunctionDeclaration","path":"TestCases/ch13/13.2/S13.2_A1_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBBICJwcm90b3R5cGUiIHByb3BlcnR5IGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBmb3IgZXZlcnkgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0ExX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBVc2luZyAidmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCl7fSIgYXMgYSBGdW5jdGlvbkRlY2xhcmF0aW9uCiAqLwoKdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCl7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYy5wcm90b3R5cGUgPT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19mdW5jLnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"A \"prototype\" property is automatically created for every function","description":"Using \"var __func = function(){}\" as a FunctionDeclaration","path":"TestCases/ch13/13.2/S13.2_A1_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBOZXN0ZWQgZnVuY3Rpb24gYXJlIGFkbWl0dGVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMl9BMl9UMS5qcwogKiBAZGVzY3JpcHRpb24gTmVzdGluZyBsZXZlbCBpcyB0d28KICovCgp2YXIgX19KRURJPSJqZWRpIjsKCmZ1bmN0aW9uIF9fRlVOQygpewogICAgZnVuY3Rpb24gX19HVU5DKCl7CiAgICAgICAgcmV0dXJuIGFyZ3VtZW50c1swXTsKICAgIH07CiAgICAKICAgIHJldHVybiBfX0dVTkM7Cn07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX0ZVTkMoKShfX0pFREkpICE9PSBfX0pFREkpIHsKCSRFUlJPUignIzE6IF9fRlVOQygpKF9fSkVESSkgPT09IF9fSkVESS4gQWN0dWFsOiBfX0ZVTkMoKShfX0pFREkpID09PScrX19GVU5DKCkoX19KRURJKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Nested function are admitted","description":"Nesting level is two","path":"TestCases/ch13/13.2/S13.2_A2_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBOZXN0ZWQgZnVuY3Rpb24gYXJlIGFkbWl0dGVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMl9BMl9UMi5qcwogKiBAZGVzY3JpcHRpb24gTmVzdGluZyBsZXZlbCBpcyB0aHJlZQogKi8KCnZhciBfX1JPQk9UPSJDM1BPIjsKCmZ1bmN0aW9uIF9fRlVOQygpewogICAgZnVuY3Rpb24gX19HVU5DKCl7CiAgICAgICAgcmV0dXJuIGFyZ3VtZW50c1swXTsKICAgIH07CiAgICBmdW5jdGlvbiBfX0hVTkMoKXsKICAgICAgICByZXR1cm4gX19HVU5DOwogICAgfTsKICAgIHJldHVybiBfX0hVTkM7Cn07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX0ZVTkMoKSgpKF9fUk9CT1QpICE9PSBfX1JPQk9UKSB7CgkkRVJST1IoJyMxOiBfX0ZVTkMoKSgpKF9fUk9CT1QpID09PSBfX1JPQk9ULiBBY3R1YWw6IF9fRlVOQygpKCkoX19ST0JPVCkgPT09JytfX0ZVTkMoKSgpKF9fUk9CT1QpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Nested function are admitted","description":"Nesting level is three","path":"TestCases/ch13/13.2/S13.2_A2_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIEZ1bmN0aW9uIG9iamVjdChGKSBpcyBjb25zdHJ1Y3RlZCB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEYgaXMgc2V0IHRvIHRoZSBudW1iZXIgb2YgZm9ybWFsIHByb3BlcnRpZXMgc3BlY2lmaWVkIGluIEZvcm1hbFBhcmFtZXRlckxpc3QKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0EzLmpzCiAqIEBkZXNjcmlwdGlvbiBDcmVhdGluZyBmdW5jdGlvbnMgd2l0aCB2YXJpb3VzIEZvcm1hbFBhcmFtZXRlckxpc3QgYW5kIGNoZWNraW5nIHRoZWlyIGxlbmd0aHMKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jLmxlbmd0aCAhPT0gMCkgewoJJEVSUk9SKCcjMTogX19mdW5jLmxlbmd0aCA9PT0gMC4gQWN0dWFsOiBfX2Z1bmMubGVuZ3RoID09PScrX19mdW5jLmxlbmd0aCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2d1bmMoYSxiLGMpe307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2d1bmMubGVuZ3RoICE9PSAzKSB7CgkkRVJST1IoJyMyOiBfX2d1bmMubGVuZ3RoID09PSAzLiBBY3R1YWw6IF9fZ3VuYy5sZW5ndGggPT09JytfX2d1bmMubGVuZ3RoKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","commentary":"When Function object(F) is constructed the length property of F is set to the number of formal properties specified in FormalParameterList","description":"Creating functions with various FormalParameterList and checking their lengths","path":"TestCases/ch13/13.2/S13.2_A3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIEZ1bmN0aW9uIG9iamVjdChGKSBpcyBjb25zdHJ1Y3RlZCB0aGUgZm9sbG93aW5nIHN0ZXBzIGZyb20gOSB0byAxMSB0YWtlIHBsYWNlCiAqIDkuQ3JlYXRlIGEgbmV3IG9iamVjdCBhcyB3b3VsZCBiZSBjb25zdHJ1Y3RlZCBieSB0aGUgZXhwcmVzc2lvbiBuZXcgT2JqZWN0KCkuCiAqIDEwLiBTZXQgdGhlIGNvbnN0cnVjdG9yIHByb3BlcnR5IG9mIFJlc3VsdCg5KSB0byBGLiBUaGlzIHByb3BlcnR5IGlzIGdpdmVuIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9LgogKiAxMS4gU2V0IHRoZSAicHJvdG90eXBlIiBwcm9wZXJ0eSBvZiBGIHRvIFJlc3VsdCg5KS4KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0E0X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGVja2luZyBwcm90b3R5cGUsIHByb3RvdHlwZS5jb25zdHJ1Y3RvciBwcm9wZXJ0aWVzIGFuZCB7RG9udEVudW19IHByb3BlcnR5IG9mIGEgY29uc3RydWN0b3IuCiAqIFVzaW5nICJmdW5jdGlvbiBfX2Z1bmMoKXt9IiBhcyBhIEZ1bmN0aW9uRGVjbGFyYXRpb24KICovCgpmdW5jdGlvbiBfX2Z1bmMoKXt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZnVuYy5wcm90b3R5cGUgIT09ICdvYmplY3QnKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19mdW5jLnByb3RvdHlwZSA9PT0gXCdvYmplY3RcJy4gQWN0dWFsOiB0eXBlb2YgX19ndW5jLnByb3RvdHlwZSA9PT0nK3R5cGVvZiBfX2d1bmMucHJvdG90eXBlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYy5wcm90b3R5cGUuY29uc3RydWN0b3IgIT09IF9fZnVuYykgewoJJEVSUk9SKCcjMjogX19mdW5jLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9PT0gX19mdW5jLiBBY3R1YWw6IF9fZ3VuYy5wcm90b3R5cGUuY29uc3RydWN0b3IgPT09JytfX2d1bmMucHJvdG90eXBlLmNvbnN0cnVjdG9yKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBfX2NvbnN0cnVjdG9yX3dhc19fZW51bWVkOwoKZm9yIChfX3Byb3AgaW4gX19mdW5jLnByb3RvdHlwZSl7CiAgICBpZiAoX19wcm9wID0gJ2NvbnN0cnVjdG9yJykKICAgICAgICBfX2NvbnN0cnVjdG9yX3dhc19fZW51bWVkID0gdHJ1ZTsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCkgewoJJEVSUk9SKCcjMzogX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCA9PT0gZmFsc2UuIEFjdHVhbDogX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCA9PT0nK19fY29uc3RydWN0b3Jfd2FzX19lbnVtZWQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoKCgo=","commentary":"When Function object(F) is constructed the following steps from 9 to 11 take place\n9.Create a new object as would be constructed by the expression new Object().\n10. Set the constructor property of Result(9) to F. This property is given attributes { DontEnum }.\n11. Set the \"prototype\" property of F to Result(9).","description":"Checking prototype, prototype.constructor properties and {DontEnum} property of a constructor.\nUsing \"function __func(){}\" as a FunctionDeclaration","path":"TestCases/ch13/13.2/S13.2_A4_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIEZ1bmN0aW9uIG9iamVjdChGKSBpcyBjb25zdHJ1Y3RlZCB0aGUgZm9sbG93aW5nIHN0ZXBzIGZyb20gOSB0byAxMSB0YWtlIHBsYWNlCiAqIDkuQ3JlYXRlIGEgbmV3IG9iamVjdCBhcyB3b3VsZCBiZSBjb25zdHJ1Y3RlZCBieSB0aGUgZXhwcmVzc2lvbiBuZXcgT2JqZWN0KCkuCiAqIDEwLiBTZXQgdGhlIGNvbnN0cnVjdG9yIHByb3BlcnR5IG9mIFJlc3VsdCg5KSB0byBGLiBUaGlzIHByb3BlcnR5IGlzIGdpdmVuIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9LgogKiAxMS4gU2V0IHRoZSAicHJvdG90eXBlIiBwcm9wZXJ0eSBvZiBGIHRvIFJlc3VsdCg5KS4KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0E0X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGVja2luZyBwcm90b3R5cGUsIHByb3RvdHlwZS5jb25zdHJ1Y3RvciBwcm9wZXJ0aWVzIGFuZCB7RG9udEVudW19IHByb3BlcnR5IG9mIGEgY29uc3RydWN0b3IuCiAqIFVzaW5nICJ2YXIgX19ndW5jID0gZnVuY3Rpb24oKXt9IiBhcyBhIEZ1bmN0aW9uRGVjbGFyYXRpb24KICovCgp2YXIgX19ndW5jID0gZnVuY3Rpb24oKXt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZ3VuYy5wcm90b3R5cGUgIT09ICdvYmplY3QnKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19ndW5jLnByb3RvdHlwZSA9PT0gXCdvYmplY3RcJy4gQWN0dWFsOiB0eXBlb2YgX19ndW5jLnByb3RvdHlwZSA9PT0nK3R5cGVvZiBfX2d1bmMucHJvdG90eXBlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZ3VuYy5wcm90b3R5cGUuY29uc3RydWN0b3IgIT09IF9fZ3VuYykgewoJJEVSUk9SKCcjMjogX19ndW5jLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9PT0gX19ndW5jLiBBY3R1YWw6IF9fZ3VuYy5wcm90b3R5cGUuY29uc3RydWN0b3IgPT09JytfX2d1bmMucHJvdG90eXBlLmNvbnN0cnVjdG9yKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBfX2NvbnN0cnVjdG9yX3dhc19fZW51bWVkOwoKZm9yIChfX3Byb3AgaW4gX19ndW5jLnByb3RvdHlwZSl7CiAgICBpZiAoX19wcm9wID0gJ2NvbnN0cnVjdG9yJykKICAgICAgICBfX2NvbnN0cnVjdG9yX3dhc19fZW51bWVkID0gdHJ1ZTsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCkgewoJJEVSUk9SKCcjMzogX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCA9PT0gZmFsc2UuIEFjdHVhbDogX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCA9PT0nK19fY29uc3RydWN0b3Jfd2FzX19lbnVtZWQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoKCgo=","commentary":"When Function object(F) is constructed the following steps from 9 to 11 take place\n9.Create a new object as would be constructed by the expression new Object().\n10. Set the constructor property of Result(9) to F. This property is given attributes { DontEnum }.\n11. Set the \"prototype\" property of F to Result(9).","description":"Checking prototype, prototype.constructor properties and {DontEnum} property of a constructor.\nUsing \"var __gunc = function(){}\" as a FunctionDeclaration","path":"TestCases/ch13/13.2/S13.2_A4_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIEZ1bmN0aW9uIG9iamVjdChGKSBpcyBjb25zdHJ1Y3RlZAogKiB0aGUgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBGIGlzIHNldCB0byB0aGUgb3JpZ2luYWwgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTUuMy4zLjEKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0E1LmpzCiAqIEBkZXNjcmlwdGlvbiBGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZigpIGlzIHVzZWQKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihfX2Z1bmMpKSkgewoJJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoX19mdW5jKScpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCnZhciBfX2d1bmMgPSBmdW5jdGlvbigpe307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKF9fZ3VuYykpKSB7CgkkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihfX2d1bmMpJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoKCg==","commentary":"When Function object(F) is constructed\nthe [[Prototype]] property of F is set to the original Function prototype object as specified in 15.3.3.1","description":"Function.prototype.isPrototypeOf() is used","path":"TestCases/ch13/13.2/S13.2_A5.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQTZfVDEuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJjYWxsZXIiIHBvaXNvbmluZyBwb2lzb25zCiAqIGdldE93blByb3BlcnR5RGVzY3JpcHRvciB0b28KICogQG9ubHlTdHJpY3QKICovCgoidXNlIHN0cmljdCI7Ck9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZnVuY3Rpb24oKXt9LCAnY2FsbGVyJyk7Cgo=","commentary":"","description":"check if \"caller\" poisoning poisons\ngetOwnPropertyDescriptor too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A6_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQTZfVDIuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJhcmd1bWVudHMiIHBvaXNvbmluZyBwb2lzb25zCiAqIGdldE93blByb3BlcnR5RGVzY3JpcHRvciB0b28KICogQG9ubHlTdHJpY3QKICovCgoidXNlIHN0cmljdCI7Ck9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZnVuY3Rpb24oKXt9LCAnYXJndW1lbnRzJyk7Cgo=","commentary":"","description":"check if \"arguments\" poisoning poisons\ngetOwnPropertyDescriptor too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A6_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQTdfVDEuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJjYWxsZXIiIHBvaXNvbmluZyBwb2lzb25zCiAqIGhhc093blByb3BlcnR5IHRvbwogKiBAb25seVN0cmljdAogKi8KCiJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKCl7fSkuaGFzT3duUHJvcGVydHkoJ2NhbGxlcicpOwoKCg==","commentary":"","description":"check if \"caller\" poisoning poisons\nhasOwnProperty too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A7_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQTdfVDIuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJhcmd1bWVudHMiIHBvaXNvbmluZyBwb2lzb25zCiAqIGhhc093blByb3BlcnR5IHRvbwogKiBAb25seVN0cmljdAogKi8KCiJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKCl7fSkuaGFzT3duUHJvcGVydHkoJ2FyZ3VtZW50cycpOwoKCg==","commentary":"","description":"check if \"arguments\" poisoning poisons\nhasOwnProperty too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A7_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQThfVDEuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJjYWxsZXIiIHBvaXNvbmluZyBwb2lzb25zCiAqICJpbiIgdG9vCiAqIEBvbmx5U3RyaWN0CiAqLwoKInVzZSBzdHJpY3QiOwonY2FsbGVyJyBpbiBmdW5jdGlvbigpIHt9OwoKCg==","commentary":"","description":"check if \"caller\" poisoning poisons\n\"in\" too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A8_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQThfVDIuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJhcmd1bWVudHMiIHBvaXNvbmluZyBwb2lzb25zCiAqICJpbiIgdG9vCiAqIEBvbmx5U3RyaWN0CiAqLwoKInVzZSBzdHJpY3QiOwonYXJndW1lbnRzJyBpbiBmdW5jdGlvbigpIHt9OwoKCg==","commentary":"","description":"check if \"arguments\" poisoning poisons\n\"in\" too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A8_T2.js"}]}} \ No newline at end of file