summaryrefslogtreecommitdiffstats
path: root/website
diff options
context:
space:
mode:
authorDavid Fugate <dfugate@microsoft.com>2012-02-03 15:23:28 -0800
committerDavid Fugate <dfugate@microsoft.com>2012-02-03 15:23:28 -0800
commit37ebff11ed7de2f260bdb8985f78978f06832ddb (patch)
tree454c5042949daa5181d0bd8af90ce0caf650a8f6 /website
parentfa9e9d32039d787358a9d6d31e0abf0162562694 (diff)
Regen'ed website.
Diffstat (limited to 'website')
-rw-r--r--website/json/bestPractice.json2
-rw-r--r--website/json/ch13.json2
-rw-r--r--website/json/ch14.json2
-rw-r--r--website/json/default.json2
-rw-r--r--website/json/testcases_bestPractice.json2
-rw-r--r--website/json/testcases_ch07.json2
-rw-r--r--website/json/testcases_ch08.json2
-rw-r--r--website/json/testcases_ch09.json2
-rw-r--r--website/json/testcases_ch10.json2
-rw-r--r--website/json/testcases_ch11.json2
-rw-r--r--website/json/testcases_ch12.json2
-rw-r--r--website/json/testcases_ch13.json2
-rw-r--r--website/json/testcases_ch14.json2
-rw-r--r--website/json/testcases_ch15.json2
-rw-r--r--website/json/testcases_intl402.json2
15 files changed, 15 insertions, 15 deletions
diff --git a/website/json/bestPractice.json b/website/json/bestPractice.json
index 644104d3e..7036bc645 100644
--- a/website/json/bestPractice.json
+++ b/website/json/bestPractice.json
@@ -1 +1 @@
-{"testsCollection":{"name":"Chapter - bestPractice","numTests":"13","tests":[{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDaGVjayBEby1XaGlsZSBTdGF0ZW1lbnQgZm9yIGF1dG9tYXRpYyBzZW1pY29sb24gaW5zZXJ0aW9uCiAqCiAqIEBwYXRoIGNoMDcvNy45L1M3LjlfQTlfVDMuanMKICogQGRlc2NyaXB0aW9uIEV4ZWN1dGUgZG8geyBcbiA7IFxuIH13aGlsZShmYWxzZSkgdHJ1ZQogKi8KCi8vQ0hFQ0sjMQpkbyB7CiAgOwp9IHdoaWxlIChmYWxzZSkgdHJ1ZQoK","commentary":"Check Do-While Statement for automatic semicolon insertion","description":"Execute do { \\n ; \\n }while(false) true","path":"TestCases/bestPractice/Sbp_7.9_A9_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDaGVjayBEby1XaGlsZSBTdGF0ZW1lbnQgZm9yIGF1dG9tYXRpYyBzZW1pY29sb24gaW5zZXJ0aW9uCiAqCiAqIEBwYXRoIGNoMDcvNy45L1M3LjlfQTlfVDQuanMKICogQGRlc2NyaXB0aW9uIEV4ZWN1dGUgZG8gOyB3aGlsZSBcbiAoZmFsc2UpIHRydWUKICovCgovL0NIRUNLIzEKZG8gOyB3aGlsZSAKKGZhbHNlKSB0cnVlCgo=","commentary":"Check Do-While Statement for automatic semicolon insertion","description":"Execute do ; while \\n (false) true","path":"TestCases/bestPractice/Sbp_7.9_A9_T4.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:make_non-standard_properties_configurable","code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBiZXN0UHJhY3RpY2UvU2JwX0ExMF9UMS5qcwogKiBAZGVzY3JpcHRpb24gQnVpbHQtaW4gZnVuY3Rpb25zIHNob3VsZCBub3QgaGF2ZSBhIG5vbi1kZWxldGFibGUsCiAqIG5vbi1wb2lzb25lZCAiY2FsbGVyIiBwcm9wZXJ0eS4KICogQGJlc3RQcmFjdGljZQogKiBodHRwOi8vd2lraS5lY21hc2NyaXB0Lm9yZy9kb2t1LnBocD9pZD1jb252ZW50aW9uczptYWtlX25vbi1zdGFuZGFyZF9wcm9wZXJ0aWVzX2NvbmZpZ3VyYWJsZQogKi8KCihmdW5jdGlvbigpIHsKICAgdmFyIG1hcCA9IEFycmF5LnByb3RvdHlwZS5tYXA7CiAgIGlmICghbWFwKSB7IHJldHVybjsgfQogICB0cnkgewogICAgIGRlbGV0ZSBtYXAuY2FsbGVyOwogICB9IGNhdGNoIChlcnIxKSB7CiAgICAgLy8gaWdub3JlCiAgIH0KICAgaWYgKCdjYWxsZXInIGluIG1hcCkgewogICAgIHRyeSB7CiAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobWFwLCAnY2FsbGVyJywgewogICAgICAgICB3cml0YWJsZTogZmFsc2UsCiAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UKICAgICAgIH0pOwogICAgIH0gY2F0Y2ggKGVycjIpIHsKICAgICAgIC8vIGlnbm9yZQogICAgIH0KICAgfQoKICAgZnVuY3Rpb24gZm9vKG0pIHsgcmV0dXJuIG0uY2FsbGVyOyB9CiAgIGZ1bmN0aW9uIHRlc3RmbihhLCBmKSB7IHJldHVybiBhLm1hcChmKVswXTsgfQogICB2YXIgYSA9IFttYXBdOwogICB2YXIgY2FsbGVyOwogICB0cnkgewogICAgIGNhbGxlciA9IHRlc3RmbihhLCBmb28pOwogICB9IGNhdGNoIChlcnIzKSB7CiAgICAgaWYgKGVycjMgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHsgcmV0dXJuOyB9CiAgICAgJEVSUk9SKCcjMTogQnVpbHQtaW4gImNhbGxlciIgZmFpbGVkIHdpdGg6ICcgKyBlcnIzKTsKICAgfQogICBpZiAobnVsbCA9PT0gY2FsbGVyIHx8IHZvaWQgMCA9PT0gY2FsbGVyKSB7IHJldHVybjsgfQogICBpZiAodGVzdGZuID09PSBjYWxsZXIpIHsKICAgICAkRVJST1IoJyMyOiBCdWlsdC1pbiByZXZlYWxlZCBjYWxsZXInKTsKICAgfQogICAkRVJST1IoJyMzOiBVbmV4cGVjdGVkICJjYWxsZXIiOiAnICsgY2FsbGVyKTsKfSkoKTs=","commentary":"","description":"Built-in functions should not have a non-deletable,\nnon-poisoned \"caller\" property.","path":"TestCases/bestPractice/Sbp_A10_T1.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:make_non-standard_properties_configurable","code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBiZXN0UHJhY3RpY2UvU2JwX0ExMF9UMi5qcwogKiBAZGVzY3JpcHRpb24gQnVpbHQtaW4gZnVuY3Rpb25zIHNob3VsZCBub3QgaGF2ZSBhIG5vbi1kZWxldGFibGUsCiAqIG5vbi1wb2lzb25lZCAiYXJndW1lbnRzIiBwcm9wZXJ0eS4KICogQGJlc3RQcmFjdGljZQogKiBodHRwOi8vd2lraS5lY21hc2NyaXB0Lm9yZy9kb2t1LnBocD9pZD1jb252ZW50aW9uczptYWtlX25vbi1zdGFuZGFyZF9wcm9wZXJ0aWVzX2NvbmZpZ3VyYWJsZQogKi8KCihmdW5jdGlvbigpIHsKICAgdmFyIG1hcCA9IEFycmF5LnByb3RvdHlwZS5tYXA7CiAgIGlmICghbWFwKSB7IHJldHVybjsgfQogICB0cnkgewogICAgIGRlbGV0ZSBtYXAuYXJndW1lbnRzOwogICB9IGNhdGNoIChlcnIxKSB7CiAgICAgLy8gaWdub3JlCiAgIH0KICAgaWYgKCdhcmd1bWVudHMnIGluIG1hcCkgewogICAgIHRyeSB7CiAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobWFwLCAnYXJndW1lbnRzJywgewogICAgICAgICB3cml0YWJsZTogZmFsc2UsCiAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UKICAgICAgIH0pOwogICAgIH0gY2F0Y2ggKGVycjIpIHsKICAgICAgIC8vIGlnbm9yZQogICAgIH0KICAgfQoKICAgZnVuY3Rpb24gZm9vKG0pIHsgcmV0dXJuIG0uYXJndW1lbnRzOyB9CiAgIGZ1bmN0aW9uIHRlc3RmbihhLCBmKSB7IHJldHVybiBhLm1hcChmKVswXTsgfQogICB2YXIgYSA9IFttYXBdOwogICB2YXIgYXJnczsKICAgdHJ5IHsKICAgICBhcmdzID0gdGVzdGZuKGEsIGZvbyk7CiAgIH0gY2F0Y2ggKGVycjMpIHsKICAgICBpZiAoZXJyMyBpbnN0YW5jZW9mIFR5cGVFcnJvcikgeyByZXR1cm47IH0KICAgICAkRVJST1IoJyMxOiBCdWlsdC1pbiAiYXJndW1lbnRzIiBmYWlsZWQgd2l0aDogJyArIGVycjMpOwogICB9CiAgIGlmIChudWxsID09PSBhcmdzIHx8IHZvaWQgMCA9PT0gYXJncykgeyByZXR1cm47IH0KICAgaWYgKHRlc3RmbiA9PT0gYXJncykgewogICAgICRFUlJPUignIzI6IEJ1aWx0LWluIHJldmVhbGVkIGFyZ3VtZW50cycpOwogICB9CiAgICRFUlJPUignIzM6IFVuZXhwZWN0ZWQgImFyZ3VtZW50cyI6ICcgKyBhcmdzKTsKfSkoKTsK","commentary":"","description":"Built-in functions should not have a non-deletable,\nnon-poisoned \"arguments\" property.","path":"TestCases/bestPractice/Sbp_A10_T2.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBCbG9jayB7IH0gaW4gc3RyaWN0IGNvZGUgY2FuJ3QgY29udGFpbiBmdW5jdGlvbgogKiBkZWNsYXJhdGlvbjsKICoKICogQHBhdGggYmVzdFByYWN0aWNlL1NicF9BMV9UMS5qcwogKiBAZGVzY3JpcHRpb24gVHJ5aW5nIHRvIGRlY2xhcmUgZnVuY3Rpb24gYXQgdGhlIEJsb2NrIHN0YXRlbWVudAogKiBAb25seVN0cmljdAogKiBAbmVnYXRpdmUgU3ludGF4RXJyb3IKICogQGJlc3RQcmFjdGljZSBodHRwOi8vd2lraS5lY21hc2NyaXB0Lm9yZy9kb2t1LnBocD9pZD1jb252ZW50aW9uczpub19ub25fc3RhbmRhcmRfc3RyaWN0X2RlY2xzCiAqLwoKInVzZSBzdHJpY3QiOwp7CiAgICBmdW5jdGlvbiBfX2Z1bmMoKXt9Cn0KCg==","commentary":"The production Block { } in strict code can't contain function\ndeclaration;","description":"Trying to declare function at the Block statement","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A1_T1.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBkZWNsYXJhdGlvbiB3aXRoaW4gYW4gImlmIiBzdGF0ZW1lbnQgaW4gc3RyaWN0IGNvZGUgaXMgbm90CiAqIGFsbG93ZWQKICoKICogQHBhdGggYmVzdFByYWN0aWNlL1NicF9BMl9UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGZ1bmN0aW9uIHdpdGhpbiBhIHN0cmljdCAiaWYiIHN0YXRlbWVudAogKiBAb25seVN0cmljdAogKiBAbmVnYXRpdmUgU3ludGF4RXJyb3IKICogQGJlc3RQcmFjdGljZSBodHRwOi8vd2lraS5lY21hc2NyaXB0Lm9yZy9kb2t1LnBocD9pZD1jb252ZW50aW9uczpub19ub25fc3RhbmRhcmRfc3RyaWN0X2RlY2xzCiAqLwoKInVzZSBzdHJpY3QiOwppZiAodHJ1ZSkgewogICAgZnVuY3Rpb24gX19mdW5jKCl7fTsKfSBlbHNlIHsKICAgIGZ1bmN0aW9uIF9fZnVuYygpe307Cn0KCg==","commentary":"Function declaration within an \"if\" statement in strict code is not\nallowed","description":"Declaring function within a strict \"if\" statement","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A2_T1.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBkZWNsYXJhdGlvbiB3aXRoaW4gYW4gImlmIiBzdGF0ZW1lbnQgaW4gc3RyaWN0IGNvZGUgaXMgbm90IGFsbG93ZWQ7CiAqCiAqIEBwYXRoIGJlc3RQcmFjdGljZS9TYnBfQTJfVDIuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBmdW5jdGlvbiB3aXRoaW4gYW4gImlmIiB0aGF0IGlzIGRlY2xhcmVkCiAqIHdpdGhpbiB0aGUgc3RyaWN0IGZ1bmN0aW9uCiAqIEBvbmx5U3RyaWN0CiAqIEBuZWdhdGl2ZSBTeW50YXhFcnJvcgogKiBAYmVzdFByYWN0aWNlIGh0dHA6Ly93aWtpLmVjbWFzY3JpcHQub3JnL2Rva3UucGhwP2lkPWNvbnZlbnRpb25zOm5vX25vbl9zdGFuZGFyZF9zdHJpY3RfZGVjbHMKICovCgoidXNlIHN0cmljdCI7CihmdW5jdGlvbigpewogICBpZiAodHJ1ZSkgewogICAgIGZ1bmN0aW9uIF9fZnVuYygpe307CiAgIH0gZWxzZSB7CiAgICAgZnVuY3Rpb24gX19mdW5jKCl7fTsKICAgfQp9KTsKCg==","commentary":"Function declaration within an \"if\" statement in strict code is not allowed;","description":"Declaring function within an \"if\" that is declared\nwithin the strict function","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A2_T2.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIHdpdGhpbiBhICJkby13aGlsZSIgQmxvY2sgaW4gc3RyaWN0IGNvZGUgaXMgbm90CiAqIGFsbG93ZWQKICoKICogQHBhdGggYmVzdFByYWN0aWNlL1NicF9BM19UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGZ1bmN0aW9uIHdpdGhpbiBhICJkby13aGlsZSIgbG9vcAogKiBAb25seVN0cmljdAogKiBAbmVnYXRpdmUgU3ludGF4RXJyb3IKICogQGJlc3RQcmFjdGljZSBodHRwOi8vd2lraS5lY21hc2NyaXB0Lm9yZy9kb2t1LnBocD9pZD1jb252ZW50aW9uczpub19ub25fc3RhbmRhcmRfc3RyaWN0X2RlY2xzCiAqLwoKInVzZSBzdHJpY3QiOwpkbyB7CiAgICBmdW5jdGlvbiBfX2Z1bmMoKXt9Owp9IHdoaWxlKDApOwoK","commentary":"FunctionDeclaration within a \"do-while\" Block in strict code is not\nallowed","description":"Declaring function within a \"do-while\" loop","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A3_T1.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIHdpdGhpbiBhICJkby13aGlsZSIgQmxvY2sgaW4gc3RyaWN0IGNvZGUgaXMgbm90IGFsbG93ZWQKICoKICogQHBhdGggYmVzdFByYWN0aWNlL1NicF9BM19UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aGluIGEgImRvLXdoaWxlIiBsb29wIHRoYXQgaXMKICogd2l0aGluIGEgc3RyaWN0IGZ1bmN0aW9uCiAqIEBvbmx5U3RyaWN0CiAqIEBuZWdhdGl2ZSBTeW50YXhFcnJvcgogKiBAYmVzdFByYWN0aWNlIGh0dHA6Ly93aWtpLmVjbWFzY3JpcHQub3JnL2Rva3UucGhwP2lkPWNvbnZlbnRpb25zOm5vX25vbl9zdGFuZGFyZF9zdHJpY3RfZGVjbHMKICovCgoidXNlIHN0cmljdCI7CihmdW5jdGlvbigpewogICBkbyB7CiAgICAgZnVuY3Rpb24gX19mdW5jKCl7fTsKICAgfSB3aGlsZSgwKTsKfSk7Cgo=","commentary":"FunctionDeclaration within a \"do-while\" Block in strict code is not allowed","description":"Declaring a function within a \"do-while\" loop that is\nwithin a strict function","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A3_T2.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIHdpdGhpbiBhICJ3aGlsZSIgU3RhdGVtZW50IGlzIG5vdCBhbGxvd2VkCiAqCiAqIEBwYXRoIGJlc3RQcmFjdGljZS9TYnBfQTRfVDEuanMKICogQGRlc2NyaXB0aW9uIENoZWNraW5nIGlmIGRlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGhpbiBhICJ3aGlsZSIKICogU3RhdGVtZW50IGxlYWRzIHRvIGFuIGV4Y2VwdGlvbgogKiBAb25seVN0cmljdAogKiBAbmVnYXRpdmUgU3ludGF4RXJyb3IKICogQGJlc3RQcmFjdGljZSBodHRwOi8vd2lraS5lY21hc2NyaXB0Lm9yZy9kb2t1LnBocD9pZD1jb252ZW50aW9uczpub19ub25fc3RhbmRhcmRfc3RyaWN0X2RlY2xzCiAqLwoKInVzZSBzdHJpY3QiOwp3aGlsZSAoMCkgewogICAgZnVuY3Rpb24gX19mdW5jKCl7fTsKfTsKCg==","commentary":"FunctionDeclaration within a \"while\" Statement is not allowed","description":"Checking if declaring a function within a \"while\"\nStatement leads to an exception","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A4_T1.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIHdpdGhpbiBhICJ3aGlsZSIgU3RhdGVtZW50IGlzIG5vdCBhbGxvd2VkCiAqCiAqIEBwYXRoIGJlc3RQcmFjdGljZS9TYnBfQTRfVDIuanMKICogQGRlc2NyaXB0aW9uIENoZWNraW5nIGlmIGRlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGhpbiBhICJ3aGlsZSIKICogIFN0YXRlbWVudCB0aGF0IGlzIGluIGEgZnVuY3Rpb24gY2FsbCBsZWFkcyB0byBhbiBleGNlcHRpb24KICogQG9ubHlTdHJpY3QKICogQG5lZ2F0aXZlIFN5bnRheEVycm9yCiAqIEBiZXN0UHJhY3RpY2UgaHR0cDovL3dpa2kuZWNtYXNjcmlwdC5vcmcvZG9rdS5waHA/aWQ9Y29udmVudGlvbnM6bm9fbm9uX3N0YW5kYXJkX3N0cmljdF9kZWNscwogKi8KCiJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKCl7CiAgIHdoaWxlICgwKSB7CiAgICAgZnVuY3Rpb24gX19mdW5jKCl7fTsKICAgfTsKfSkoKTsKCg==","commentary":"FunctionDeclaration within a \"while\" Statement is not allowed","description":"Checking if declaring a function within a \"while\"\n Statement that is in a function call leads to an exception","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A4_T2.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIHdpdGhpbiBhICJmb3ItaW4iIFN0YXRlbWVudCBpcyBub3QgYWxsb3dlZAogKgogKiBAcGF0aCBiZXN0UHJhY3RpY2UvU2JwX0E1X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgZnVuY3Rpb24gd2l0aGluIGEgImZvci1pbiIgU3RhdGVtZW50CiAqIEBvbmx5U3RyaWN0CiAqIEBuZWdhdGl2ZSBTeW50YXhFcnJvcgogKiBAYmVzdFByYWN0aWNlIGh0dHA6Ly93aWtpLmVjbWFzY3JpcHQub3JnL2Rva3UucGhwP2lkPWNvbnZlbnRpb25zOm5vX25vbl9zdGFuZGFyZF9zdHJpY3RfZGVjbHMKICovCgoidXNlIHN0cmljdCI7CmZvciAoeCBpbiB0aGlzKSB7CiAgICBmdW5jdGlvbiBfX2Z1bmMoKXt9Owp9Cgo=","commentary":"FunctionDeclaration within a \"for-in\" Statement is not allowed","description":"Declaring function within a \"for-in\" Statement","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A5_T1.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIHdpdGhpbiBhICJmb3ItaW4iIFN0YXRlbWVudCBpcyBub3QgYWxsb3dlZAogKgogKiBAcGF0aCBiZXN0UHJhY3RpY2UvU2JwX0E1X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgZnVuY3Rpb24gd2l0aGluIGEgImZvci1pbiIgU3RhdGVtZW50IHRoYXQgaXMKICogd2l0aGluIGEgZnVuY3Rpb24gY2FsbAogKiBAb25seVN0cmljdAogKiBAbmVnYXRpdmUgU3ludGF4RXJyb3IKICogQGJlc3RQcmFjdGljZSBodHRwOi8vd2lraS5lY21hc2NyaXB0Lm9yZy9kb2t1LnBocD9pZD1jb252ZW50aW9uczpub19ub25fc3RhbmRhcmRfc3RyaWN0X2RlY2xzCiAqLwoKInVzZSBzdHJpY3QiOwooZnVuY3Rpb24oKXsKICAgZm9yICh4IGluIHRoaXMpIHsKICAgICBmdW5jdGlvbiBfX2Z1bmMoKXt9OwogICB9Cn0pKCk7Cgo=","commentary":"FunctionDeclaration within a \"for-in\" Statement is not allowed","description":"Declaring function within a \"for-in\" Statement that is\nwithin a function call","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A5_T2.js"}]}} \ No newline at end of file
+{"testsCollection":{"name":"Chapter - bestPractice","numTests":"13","tests":[{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDaGVjayBEby1XaGlsZSBTdGF0ZW1lbnQgZm9yIGF1dG9tYXRpYyBzZW1pY29sb24gaW5zZXJ0aW9uCiAqCiAqIEBwYXRoIGJlc3RQcmFjdGljZS9TYnBfNy45X0E5X1QzLmpzCiAqIEBkZXNjcmlwdGlvbiBFeGVjdXRlIGRvIHsgXG4gOyBcbiB9d2hpbGUoZmFsc2UpIHRydWUKICovCgovL0NIRUNLIzEKZG8gewogIDsKfSB3aGlsZSAoZmFsc2UpIHRydWUKCg==","commentary":"Check Do-While Statement for automatic semicolon insertion","description":"Execute do { \\n ; \\n }while(false) true","path":"TestCases/bestPractice/Sbp_7.9_A9_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDaGVjayBEby1XaGlsZSBTdGF0ZW1lbnQgZm9yIGF1dG9tYXRpYyBzZW1pY29sb24gaW5zZXJ0aW9uCiAqCiAqIEBwYXRoIGJlc3RQcmFjdGljZS9TYnBfNy45X0E5X1Q0LmpzCiAqIEBkZXNjcmlwdGlvbiBFeGVjdXRlIGRvIDsgd2hpbGUgXG4gKGZhbHNlKSB0cnVlCiAqLwoKLy9DSEVDSyMxCmRvIDsgd2hpbGUgCihmYWxzZSkgdHJ1ZQoK","commentary":"Check Do-While Statement for automatic semicolon insertion","description":"Execute do ; while \\n (false) true","path":"TestCases/bestPractice/Sbp_7.9_A9_T4.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:make_non-standard_properties_configurable","code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBiZXN0UHJhY3RpY2UvU2JwX0ExMF9UMS5qcwogKiBAZGVzY3JpcHRpb24gQnVpbHQtaW4gZnVuY3Rpb25zIHNob3VsZCBub3QgaGF2ZSBhIG5vbi1kZWxldGFibGUsCiAqIG5vbi1wb2lzb25lZCAiY2FsbGVyIiBwcm9wZXJ0eS4KICogQGJlc3RQcmFjdGljZQogKiBodHRwOi8vd2lraS5lY21hc2NyaXB0Lm9yZy9kb2t1LnBocD9pZD1jb252ZW50aW9uczptYWtlX25vbi1zdGFuZGFyZF9wcm9wZXJ0aWVzX2NvbmZpZ3VyYWJsZQogKi8KCihmdW5jdGlvbigpIHsKICAgdmFyIG1hcCA9IEFycmF5LnByb3RvdHlwZS5tYXA7CiAgIGlmICghbWFwKSB7IHJldHVybjsgfQogICB0cnkgewogICAgIGRlbGV0ZSBtYXAuY2FsbGVyOwogICB9IGNhdGNoIChlcnIxKSB7CiAgICAgLy8gaWdub3JlCiAgIH0KICAgaWYgKCdjYWxsZXInIGluIG1hcCkgewogICAgIHRyeSB7CiAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobWFwLCAnY2FsbGVyJywgewogICAgICAgICB3cml0YWJsZTogZmFsc2UsCiAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UKICAgICAgIH0pOwogICAgIH0gY2F0Y2ggKGVycjIpIHsKICAgICAgIC8vIGlnbm9yZQogICAgIH0KICAgfQoKICAgZnVuY3Rpb24gZm9vKG0pIHsgcmV0dXJuIG0uY2FsbGVyOyB9CiAgIGZ1bmN0aW9uIHRlc3RmbihhLCBmKSB7IHJldHVybiBhLm1hcChmKVswXTsgfQogICB2YXIgYSA9IFttYXBdOwogICB2YXIgY2FsbGVyOwogICB0cnkgewogICAgIGNhbGxlciA9IHRlc3RmbihhLCBmb28pOwogICB9IGNhdGNoIChlcnIzKSB7CiAgICAgaWYgKGVycjMgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHsgcmV0dXJuOyB9CiAgICAgJEVSUk9SKCcjMTogQnVpbHQtaW4gImNhbGxlciIgZmFpbGVkIHdpdGg6ICcgKyBlcnIzKTsKICAgfQogICBpZiAobnVsbCA9PT0gY2FsbGVyIHx8IHZvaWQgMCA9PT0gY2FsbGVyKSB7IHJldHVybjsgfQogICBpZiAodGVzdGZuID09PSBjYWxsZXIpIHsKICAgICAkRVJST1IoJyMyOiBCdWlsdC1pbiByZXZlYWxlZCBjYWxsZXInKTsKICAgfQogICAkRVJST1IoJyMzOiBVbmV4cGVjdGVkICJjYWxsZXIiOiAnICsgY2FsbGVyKTsKfSkoKTs=","commentary":"","description":"Built-in functions should not have a non-deletable,\nnon-poisoned \"caller\" property.","path":"TestCases/bestPractice/Sbp_A10_T1.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:make_non-standard_properties_configurable","code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBAcGF0aCBiZXN0UHJhY3RpY2UvU2JwX0ExMF9UMi5qcwogKiBAZGVzY3JpcHRpb24gQnVpbHQtaW4gZnVuY3Rpb25zIHNob3VsZCBub3QgaGF2ZSBhIG5vbi1kZWxldGFibGUsCiAqIG5vbi1wb2lzb25lZCAiYXJndW1lbnRzIiBwcm9wZXJ0eS4KICogQGJlc3RQcmFjdGljZQogKiBodHRwOi8vd2lraS5lY21hc2NyaXB0Lm9yZy9kb2t1LnBocD9pZD1jb252ZW50aW9uczptYWtlX25vbi1zdGFuZGFyZF9wcm9wZXJ0aWVzX2NvbmZpZ3VyYWJsZQogKi8KCihmdW5jdGlvbigpIHsKICAgdmFyIG1hcCA9IEFycmF5LnByb3RvdHlwZS5tYXA7CiAgIGlmICghbWFwKSB7IHJldHVybjsgfQogICB0cnkgewogICAgIGRlbGV0ZSBtYXAuYXJndW1lbnRzOwogICB9IGNhdGNoIChlcnIxKSB7CiAgICAgLy8gaWdub3JlCiAgIH0KICAgaWYgKCdhcmd1bWVudHMnIGluIG1hcCkgewogICAgIHRyeSB7CiAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobWFwLCAnYXJndW1lbnRzJywgewogICAgICAgICB3cml0YWJsZTogZmFsc2UsCiAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UKICAgICAgIH0pOwogICAgIH0gY2F0Y2ggKGVycjIpIHsKICAgICAgIC8vIGlnbm9yZQogICAgIH0KICAgfQoKICAgZnVuY3Rpb24gZm9vKG0pIHsgcmV0dXJuIG0uYXJndW1lbnRzOyB9CiAgIGZ1bmN0aW9uIHRlc3RmbihhLCBmKSB7IHJldHVybiBhLm1hcChmKVswXTsgfQogICB2YXIgYSA9IFttYXBdOwogICB2YXIgYXJnczsKICAgdHJ5IHsKICAgICBhcmdzID0gdGVzdGZuKGEsIGZvbyk7CiAgIH0gY2F0Y2ggKGVycjMpIHsKICAgICBpZiAoZXJyMyBpbnN0YW5jZW9mIFR5cGVFcnJvcikgeyByZXR1cm47IH0KICAgICAkRVJST1IoJyMxOiBCdWlsdC1pbiAiYXJndW1lbnRzIiBmYWlsZWQgd2l0aDogJyArIGVycjMpOwogICB9CiAgIGlmIChudWxsID09PSBhcmdzIHx8IHZvaWQgMCA9PT0gYXJncykgeyByZXR1cm47IH0KICAgaWYgKHRlc3RmbiA9PT0gYXJncykgewogICAgICRFUlJPUignIzI6IEJ1aWx0LWluIHJldmVhbGVkIGFyZ3VtZW50cycpOwogICB9CiAgICRFUlJPUignIzM6IFVuZXhwZWN0ZWQgImFyZ3VtZW50cyI6ICcgKyBhcmdzKTsKfSkoKTsK","commentary":"","description":"Built-in functions should not have a non-deletable,\nnon-poisoned \"arguments\" property.","path":"TestCases/bestPractice/Sbp_A10_T2.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBCbG9jayB7IH0gaW4gc3RyaWN0IGNvZGUgY2FuJ3QgY29udGFpbiBmdW5jdGlvbgogKiBkZWNsYXJhdGlvbjsKICoKICogQHBhdGggYmVzdFByYWN0aWNlL1NicF9BMV9UMS5qcwogKiBAZGVzY3JpcHRpb24gVHJ5aW5nIHRvIGRlY2xhcmUgZnVuY3Rpb24gYXQgdGhlIEJsb2NrIHN0YXRlbWVudAogKiBAb25seVN0cmljdAogKiBAbmVnYXRpdmUgU3ludGF4RXJyb3IKICogQGJlc3RQcmFjdGljZSBodHRwOi8vd2lraS5lY21hc2NyaXB0Lm9yZy9kb2t1LnBocD9pZD1jb252ZW50aW9uczpub19ub25fc3RhbmRhcmRfc3RyaWN0X2RlY2xzCiAqLwoKInVzZSBzdHJpY3QiOwp7CiAgICBmdW5jdGlvbiBfX2Z1bmMoKXt9Cn0KCg==","commentary":"The production Block { } in strict code can't contain function\ndeclaration;","description":"Trying to declare function at the Block statement","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A1_T1.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBkZWNsYXJhdGlvbiB3aXRoaW4gYW4gImlmIiBzdGF0ZW1lbnQgaW4gc3RyaWN0IGNvZGUgaXMgbm90CiAqIGFsbG93ZWQKICoKICogQHBhdGggYmVzdFByYWN0aWNlL1NicF9BMl9UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGZ1bmN0aW9uIHdpdGhpbiBhIHN0cmljdCAiaWYiIHN0YXRlbWVudAogKiBAb25seVN0cmljdAogKiBAbmVnYXRpdmUgU3ludGF4RXJyb3IKICogQGJlc3RQcmFjdGljZSBodHRwOi8vd2lraS5lY21hc2NyaXB0Lm9yZy9kb2t1LnBocD9pZD1jb252ZW50aW9uczpub19ub25fc3RhbmRhcmRfc3RyaWN0X2RlY2xzCiAqLwoKInVzZSBzdHJpY3QiOwppZiAodHJ1ZSkgewogICAgZnVuY3Rpb24gX19mdW5jKCl7fTsKfSBlbHNlIHsKICAgIGZ1bmN0aW9uIF9fZnVuYygpe307Cn0KCg==","commentary":"Function declaration within an \"if\" statement in strict code is not\nallowed","description":"Declaring function within a strict \"if\" statement","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A2_T1.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBkZWNsYXJhdGlvbiB3aXRoaW4gYW4gImlmIiBzdGF0ZW1lbnQgaW4gc3RyaWN0IGNvZGUgaXMgbm90IGFsbG93ZWQ7CiAqCiAqIEBwYXRoIGJlc3RQcmFjdGljZS9TYnBfQTJfVDIuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBmdW5jdGlvbiB3aXRoaW4gYW4gImlmIiB0aGF0IGlzIGRlY2xhcmVkCiAqIHdpdGhpbiB0aGUgc3RyaWN0IGZ1bmN0aW9uCiAqIEBvbmx5U3RyaWN0CiAqIEBuZWdhdGl2ZSBTeW50YXhFcnJvcgogKiBAYmVzdFByYWN0aWNlIGh0dHA6Ly93aWtpLmVjbWFzY3JpcHQub3JnL2Rva3UucGhwP2lkPWNvbnZlbnRpb25zOm5vX25vbl9zdGFuZGFyZF9zdHJpY3RfZGVjbHMKICovCgoidXNlIHN0cmljdCI7CihmdW5jdGlvbigpewogICBpZiAodHJ1ZSkgewogICAgIGZ1bmN0aW9uIF9fZnVuYygpe307CiAgIH0gZWxzZSB7CiAgICAgZnVuY3Rpb24gX19mdW5jKCl7fTsKICAgfQp9KTsKCg==","commentary":"Function declaration within an \"if\" statement in strict code is not allowed;","description":"Declaring function within an \"if\" that is declared\nwithin the strict function","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A2_T2.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIHdpdGhpbiBhICJkby13aGlsZSIgQmxvY2sgaW4gc3RyaWN0IGNvZGUgaXMgbm90CiAqIGFsbG93ZWQKICoKICogQHBhdGggYmVzdFByYWN0aWNlL1NicF9BM19UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGZ1bmN0aW9uIHdpdGhpbiBhICJkby13aGlsZSIgbG9vcAogKiBAb25seVN0cmljdAogKiBAbmVnYXRpdmUgU3ludGF4RXJyb3IKICogQGJlc3RQcmFjdGljZSBodHRwOi8vd2lraS5lY21hc2NyaXB0Lm9yZy9kb2t1LnBocD9pZD1jb252ZW50aW9uczpub19ub25fc3RhbmRhcmRfc3RyaWN0X2RlY2xzCiAqLwoKInVzZSBzdHJpY3QiOwpkbyB7CiAgICBmdW5jdGlvbiBfX2Z1bmMoKXt9Owp9IHdoaWxlKDApOwoK","commentary":"FunctionDeclaration within a \"do-while\" Block in strict code is not\nallowed","description":"Declaring function within a \"do-while\" loop","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A3_T1.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIHdpdGhpbiBhICJkby13aGlsZSIgQmxvY2sgaW4gc3RyaWN0IGNvZGUgaXMgbm90IGFsbG93ZWQKICoKICogQHBhdGggYmVzdFByYWN0aWNlL1NicF9BM19UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aGluIGEgImRvLXdoaWxlIiBsb29wIHRoYXQgaXMKICogd2l0aGluIGEgc3RyaWN0IGZ1bmN0aW9uCiAqIEBvbmx5U3RyaWN0CiAqIEBuZWdhdGl2ZSBTeW50YXhFcnJvcgogKiBAYmVzdFByYWN0aWNlIGh0dHA6Ly93aWtpLmVjbWFzY3JpcHQub3JnL2Rva3UucGhwP2lkPWNvbnZlbnRpb25zOm5vX25vbl9zdGFuZGFyZF9zdHJpY3RfZGVjbHMKICovCgoidXNlIHN0cmljdCI7CihmdW5jdGlvbigpewogICBkbyB7CiAgICAgZnVuY3Rpb24gX19mdW5jKCl7fTsKICAgfSB3aGlsZSgwKTsKfSk7Cgo=","commentary":"FunctionDeclaration within a \"do-while\" Block in strict code is not allowed","description":"Declaring a function within a \"do-while\" loop that is\nwithin a strict function","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A3_T2.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIHdpdGhpbiBhICJ3aGlsZSIgU3RhdGVtZW50IGlzIG5vdCBhbGxvd2VkCiAqCiAqIEBwYXRoIGJlc3RQcmFjdGljZS9TYnBfQTRfVDEuanMKICogQGRlc2NyaXB0aW9uIENoZWNraW5nIGlmIGRlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGhpbiBhICJ3aGlsZSIKICogU3RhdGVtZW50IGxlYWRzIHRvIGFuIGV4Y2VwdGlvbgogKiBAb25seVN0cmljdAogKiBAbmVnYXRpdmUgU3ludGF4RXJyb3IKICogQGJlc3RQcmFjdGljZSBodHRwOi8vd2lraS5lY21hc2NyaXB0Lm9yZy9kb2t1LnBocD9pZD1jb252ZW50aW9uczpub19ub25fc3RhbmRhcmRfc3RyaWN0X2RlY2xzCiAqLwoKInVzZSBzdHJpY3QiOwp3aGlsZSAoMCkgewogICAgZnVuY3Rpb24gX19mdW5jKCl7fTsKfTsKCg==","commentary":"FunctionDeclaration within a \"while\" Statement is not allowed","description":"Checking if declaring a function within a \"while\"\nStatement leads to an exception","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A4_T1.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIHdpdGhpbiBhICJ3aGlsZSIgU3RhdGVtZW50IGlzIG5vdCBhbGxvd2VkCiAqCiAqIEBwYXRoIGJlc3RQcmFjdGljZS9TYnBfQTRfVDIuanMKICogQGRlc2NyaXB0aW9uIENoZWNraW5nIGlmIGRlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGhpbiBhICJ3aGlsZSIKICogIFN0YXRlbWVudCB0aGF0IGlzIGluIGEgZnVuY3Rpb24gY2FsbCBsZWFkcyB0byBhbiBleGNlcHRpb24KICogQG9ubHlTdHJpY3QKICogQG5lZ2F0aXZlIFN5bnRheEVycm9yCiAqIEBiZXN0UHJhY3RpY2UgaHR0cDovL3dpa2kuZWNtYXNjcmlwdC5vcmcvZG9rdS5waHA/aWQ9Y29udmVudGlvbnM6bm9fbm9uX3N0YW5kYXJkX3N0cmljdF9kZWNscwogKi8KCiJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKCl7CiAgIHdoaWxlICgwKSB7CiAgICAgZnVuY3Rpb24gX19mdW5jKCl7fTsKICAgfTsKfSkoKTsKCg==","commentary":"FunctionDeclaration within a \"while\" Statement is not allowed","description":"Checking if declaring a function within a \"while\"\n Statement that is in a function call leads to an exception","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A4_T2.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIHdpdGhpbiBhICJmb3ItaW4iIFN0YXRlbWVudCBpcyBub3QgYWxsb3dlZAogKgogKiBAcGF0aCBiZXN0UHJhY3RpY2UvU2JwX0E1X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgZnVuY3Rpb24gd2l0aGluIGEgImZvci1pbiIgU3RhdGVtZW50CiAqIEBvbmx5U3RyaWN0CiAqIEBuZWdhdGl2ZSBTeW50YXhFcnJvcgogKiBAYmVzdFByYWN0aWNlIGh0dHA6Ly93aWtpLmVjbWFzY3JpcHQub3JnL2Rva3UucGhwP2lkPWNvbnZlbnRpb25zOm5vX25vbl9zdGFuZGFyZF9zdHJpY3RfZGVjbHMKICovCgoidXNlIHN0cmljdCI7CmZvciAoeCBpbiB0aGlzKSB7CiAgICBmdW5jdGlvbiBfX2Z1bmMoKXt9Owp9Cgo=","commentary":"FunctionDeclaration within a \"for-in\" Statement is not allowed","description":"Declaring function within a \"for-in\" Statement","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A5_T1.js"},{"bestPractice":"http://wiki.ecmascript.org/doku.php?id=conventions:no_non_standard_strict_decls","code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIHdpdGhpbiBhICJmb3ItaW4iIFN0YXRlbWVudCBpcyBub3QgYWxsb3dlZAogKgogKiBAcGF0aCBiZXN0UHJhY3RpY2UvU2JwX0E1X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgZnVuY3Rpb24gd2l0aGluIGEgImZvci1pbiIgU3RhdGVtZW50IHRoYXQgaXMKICogd2l0aGluIGEgZnVuY3Rpb24gY2FsbAogKiBAb25seVN0cmljdAogKiBAbmVnYXRpdmUgU3ludGF4RXJyb3IKICogQGJlc3RQcmFjdGljZSBodHRwOi8vd2lraS5lY21hc2NyaXB0Lm9yZy9kb2t1LnBocD9pZD1jb252ZW50aW9uczpub19ub25fc3RhbmRhcmRfc3RyaWN0X2RlY2xzCiAqLwoKInVzZSBzdHJpY3QiOwooZnVuY3Rpb24oKXsKICAgZm9yICh4IGluIHRoaXMpIHsKICAgICBmdW5jdGlvbiBfX2Z1bmMoKXt9OwogICB9Cn0pKCk7Cgo=","commentary":"FunctionDeclaration within a \"for-in\" Statement is not allowed","description":"Declaring function within a \"for-in\" Statement that is\nwithin a function call","negative":"SyntaxError","onlyStrict":"","path":"TestCases/bestPractice/Sbp_A5_T2.js"}]}} \ No newline at end of file
diff --git a/website/json/ch13.json b/website/json/ch13.json
index c1db0d93a..3b70be271 100644
--- a/website/json/ch13.json
+++ b/website/json/ch13.json
@@ -1 +1 @@
-{"testsCollection":{"name":"Chapter - ch13","numTests":"200","tests":[{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAieD1mdW5jdGlvbiB5KCl7fSIgc3RhdGVtZW50IGRvZXMgbm90IHN0b3JlIGEgcmVmZXJlbmNlIHRvIHRoZSBuZXcgZnVuY3Rpb24gaW4gdGhlIHZhcmFpYmxlIHkoSWRlbnRpZmllcikKICoKICogQHBhdGggY2gxMy9TMTNfQTEuanMKICogQGRlc2NyaXB0aW9uIENoZWNraW5nIHRoZSB0eXBlIG9mIHkKICovCgp2YXIgX19mdW5jID0gZnVuY3Rpb24gX19leHBfX2Z1bmMoKXtyZXR1cm4gMDt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2Z1bmMgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICh0eXBlb2YgX19leHBfX2Z1bmMgIT09ICJ1bmRlZmluZWQiKXsKICAgICRFUlJPUignIzI6IHR5cGVvZiBfX2V4cF9fZnVuYyA9PT0gInVuZGVmaW5lZCIuIEFjdHVhbDogdHlwZW9mIF9fZXhwX19mdW5jID09PScrdHlwZW9mIF9fZXhwX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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/S13_A1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBpcyBhIGRhdGEKICoKICogQHBhdGggY2gxMy9TMTNfQTEwLmpzCiAqIEBkZXNjcmlwdGlvbiBVc2luZyBmdW5jdGlvbiBhcyBhIHByb3BlcnR5IG9mIGFuIG9iamVjdAogKi8KCmZ1bmN0aW9uIF9femlnZ3lfX2Z1bmMoKXtyZXR1cm4gInppZ2d5IHN0YXJkdXN0In0KCnZhciBfX211c2ljX2JveD17fTsKCl9fbXVzaWNfYm94LnppZ2d5ID0gX196aWdneV9fZnVuYzsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIwppZiAodHlwZW9mIF9fbXVzaWNfYm94LnppZ2d5ICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19tdXNpY19ib3guemlnZ3kgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fbXVzaWNfYm94LnppZ2d5ID09PScrdHlwZW9mIF9fbXVzaWNfYm94LnppZ2d5KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fbXVzaWNfYm94LnppZ2d5KCkgIT09ICJ6aWdneSBzdGFyZHVzdCIpIHsKCSRFUlJPUignIzI6IF9fbXVzaWNfYm94LnppZ2d5KCkgPT09ICJ6aWdneSBzdGFyZHVzdCIuIEFjdHVhbDogX19tdXNpY19ib3guemlnZ3koKSA9PT0nK19fbXVzaWNfYm94LnppZ2d5KCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Function is a data","description":"Using function as a property of an object","path":"TestCases/ch13/S13_A10.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy9TMTNfQTExX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgcmVzdWx0IG9mICJkZWxldGUgYXJndW1lbnRzIgogKi8KCmZ1bmN0aW9uIF9fZnVuYygpeyByZXR1cm4gZGVsZXRlIGFyZ3VtZW50czt9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoIkEiLCJCIiwxLDIpKSB7CgkkRVJST1IoJyMxOiBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfScpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Since arguments property has attribute { DontDelete }, only its elements can be deleted","description":"Returning result of \"delete arguments\"","path":"TestCases/ch13/S13_A11_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy9TMTNfQTExX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGVja2luZyBpZiBkZWxldGluZyB0aGUgYXJndW1lbnRzIHByb3BlcnR5IGZhaWxzIGFuZCB0aGVuIHJldHVybmluZyBpdAogKi8KCmZ1bmN0aW9uIF9fZnVuYygpeyAKICAgIGRlbGV0ZSBhcmd1bWVudHM7CiAgICByZXR1cm4gYXJndW1lbnRzOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19mdW5jKCJBIiwiQiIsMSwyKSAhPT0gIm9iamVjdCIpIHsKCSRFUlJPUignIzE6IGFyZ3VtZW50cyBwcm9wZXJ0eSBoYXMgYXR0cmlidXRlIHsgRG9udERlbGV0ZSB9Jyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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/S13_A11_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy9TMTNfQTExX1QzLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWxldGluZyBhcmd1bWVudHNbaV0gYW5kIHJldHVybmluZyByZXN1bHQgb2YgdGhlIG9wZXJhdGlvbgogKi8KCmZ1bmN0aW9uIF9fZnVuYygpewogICAgd2FzX2RlbD1mYWxzZTsKICAgIGZvciAoaT0wOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKQogICAgICAgd2FzX2RlbD0gd2FzX2RlbCB8fCBkZWxldGUgYXJndW1lbnRzW2ldOwogICAgcmV0dXJuIHdhc19kZWw7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKCFfX2Z1bmMoIkEiLCJCIiwxLDIpKSB7CgkkRVJST1IoJyMxOiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSBlbGVtZW50cyBvZiBhcmd1bWVudHMgY2FuIGJlIGRlbGV0ZWQnKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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/S13_A11_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy9TMTNfQTExX1Q0LmpzCiAqIEBkZXNjcmlwdGlvbiBEZWxldGluZyBhcmd1bWVudHNbaV0gYW5kIGNoZWNraW5nIHRoZSB0eXBlIG9mIGFyZ3VtZW50c1tpXQogKi8KCmZ1bmN0aW9uIF9fZnVuYygpewogICAgaXNfdW5kZWY9dHJ1ZTsKICAgIGZvciAoaT0wOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKQogICAgewogICAgICAgIGRlbGV0ZSBhcmd1bWVudHNbaV07CiAgICAgICAgaXNfdW5kZWY9IGlzX3VuZGVmICYmICh0eXBlb2YgYXJndW1lbnRzW2ldID09PSAidW5kZWZpbmVkIik7CiAgICB9OyAgICAgICAKICAgIHJldHVybiBpc191bmRlZjsKfTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKCFfX2Z1bmMoIkEiLCJCIiwxLDIpKSB7CgkkRVJST1IoJyMxOiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgYnV0IGVsZW1lbnRzIG9mIGFyZ3VtZW50cyBjYW4gYmUgZGVsZXRlZCcpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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/S13_A11_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW4gZ2xvYmFsIG9yIGZ1bmN0aW9uIHNjb3BlIGFyZSB7RG9udERlbGV0ZX0KICoKICogQHBhdGggY2gxMy9TMTNfQTEyX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGVja2luZyBpZiBkZWxldGluZyBhIGZ1bmN0aW9uIHRoYXQgaXMgZGVjbGFyZWQgaW4gZ2xvYmFsIHNjb3BlIGZhaWxzCiAqLwoKQUxJVkU9IkxldG92IGlzIGFsaXZlIgoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICByZXR1cm4gQUxJVkU7Cn07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChkZWxldGUgX19mdW5jKSB7CgkkRVJST1IoJyMxOiBkZWxldGUgX19mdW5jIHJldHVybmluZyBmYWxzZScpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCkgIT09IEFMSVZFKSB7CgkkRVJST1IoJyMyOiBfX2Z1bmMoKSA9PT0gQUxJVkUuIEFjdHVhbDogX19mdW5jKCkgPT09JytfX2Z1bmMoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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/S13_A12_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW4gZ2xvYmFsIG9yIGZ1bmN0aW9uIHNjb3BlIGFyZSB7RG9udERlbGV0ZX0KICoKICogQHBhdGggY2gxMy9TMTNfQTEyX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGVja2luZyBpZiBkZWxldGluZyBhIGZ1bmN0aW9uIHRoYXQgaXMgZGVjbGFyZWQgaW4gZnVuY3Rpb24gc2NvcGUgZmFpbHMKICovCgpBTElWRT0iTGV0b3YgaXMgYWxpdmUiCgpmdW5jdGlvbiBfX2NvbnQoKXsKCiAgICBmdW5jdGlvbiBfX2Z1bmMoKXsKICAgICAgICByZXR1cm4gQUxJVkU7CiAgICB9OwogICAgCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgIC8vQ0hFQ0sjMQogICAgaWYgKGRlbGV0ZSBfX2Z1bmMpIHsKICAgIAkkRVJST1IoJyMxOiBkZWxldGUgX19mdW5jIHJldHVybmluZyBmYWxzZScpOwogICAgfQogICAgLy8KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgIC8vQ0hFQ0sjMgogICAgaWYgKF9fZnVuYygpICE9PSBBTElWRSkgewogICAgCSRFUlJPUignIzI6IF9fZnVuYygpID09PSBBTElWRS4gQWN0dWFsOiBfX2Z1bmMoKSA9PT0nK19fZnVuYygpKTsKICAgIH0KICAgIC8vCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KfTsKCl9fY29udCgpOwoK","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/S13_A12_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBEZWxldGluZyBhcmd1bWVudHNbaV0gbGVhZHMgdG8gYnJlYWtpbmcgdGhlIGNvbm5lY3Rpb24gdG8gbG9jYWwgcmVmZXJlbmNlCiAqCiAqIEBwYXRoIGNoMTMvUzEzX0ExM19UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVsZXRpbmcgYXJndW1lbnRzW2ldCiAqLwoKZnVuY3Rpb24gX19mdW5jKF9fYXJnKXsKICBkZWxldGUgYXJndW1lbnRzWzBdOwogIGlmIChhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCkgewogICAgJEVSUk9SKCcjMS4xOiBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCcpOwogIH0KICByZXR1cm4gX19hcmc7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygxKSAhPT0gMSkgewoJJEVSUk9SKCcjMS4yOiBfX2Z1bmMoMSkgPT09IDEuIEFjdHVhbDogX19mdW5jKDEpID09PScrX19mdW5jKDEpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Deleting arguments[i] leads to breaking the connection to local reference","description":"Deleting arguments[i]","path":"TestCases/ch13/S13_A13_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBEZWxldGluZyBhcmd1bWVudHNbaV0gbGVhZHMgdG8gYnJlYWtpbmcgdGhlIGNvbm5lY3Rpb24gdG8gbG9jYWwgcmVmZXJlbmNlCiAqCiAqIEBwYXRoIGNoMTMvUzEzX0ExM19UMi5qcwogKiBAZGVzY3JpcHRpb24gQ2hhbmdpbmcgYXJndW1lbnRzIHZhbHVlIGFuZCB0aGVuIGRlbGV0aW5nIHRoZSBhcmd1bWVudAogKi8KCmZ1bmN0aW9uIF9fZnVuYyhfX2FyZyl7CiAgX19hcmcgPSAyOwogIGRlbGV0ZSBhcmd1bWVudHNbMF07CiAgaWYgKGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkKSB7CiAgICAkRVJST1IoJyMxLjE6IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkJyk7CiAgfQogIHJldHVybiBfX2FyZzsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKDEpICE9PSAyKSB7CgkkRVJST1IoJyMxLjI6IF9fZnVuYygxKSA9PT0gMi4gQWN0dWFsOiBfX2Z1bmMoMSkgPT09JytfX2Z1bmMoMSkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Deleting arguments[i] leads to breaking the connection to local reference","description":"Changing arguments value and then deleting the argument","path":"TestCases/ch13/S13_A13_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBEZWxldGluZyBhcmd1bWVudHNbaV0gbGVhZHMgdG8gYnJlYWtpbmcgdGhlIGNvbm5lY3Rpb24gdG8gbG9jYWwgcmVmZXJlbmNlCiAqCiAqIEBwYXRoIGNoMTMvUzEzX0ExM19UMy5qcwogKiBAZGVzY3JpcHRpb24gQ2hhbmdpbmcgYXJndW1lbnQgdmFsdWUsIGRlbGV0aW5nIHRoZSBhcmd1bWVudCBhbmQgdGhlbiBkZWZpbmluZyBhIG5ldyB2YWx1ZSBmb3IgYXJndW1lbnRzW2ldCiAqLwoKZnVuY3Rpb24gX19mdW5jKF9fYXJnKXsKICBfX2FyZyA9IDI7CiAgZGVsZXRlIGFyZ3VtZW50c1swXTsKICBpZiAoYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQpIHsKICAgICRFUlJPUignIzEuMTogYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQnKTsKICB9CiAgYXJndW1lbnRzWzBdID0gIkEiOwogIGlmIChhcmd1bWVudHNbMF0gIT09ICJBIikgewogICAgJEVSUk9SKCcjMS4yOiBhcmd1bWVudHNbMF0gPT09ICJBIicpOwogIH0KICByZXR1cm4gX19hcmc7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygxKSAhPT0gMikgewoJJEVSUk9SKCcjMS4zOiBfX2Z1bmMoMSkgPT09IDIuIEFjdHVhbDogX19mdW5jKDEpID09PScrX19mdW5jKDEpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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/S13_A13_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBVbmljb2RlIHN5bWJvbHMgaW4gZnVuY3Rpb24gbmFtZSBhcmUgYWxsb3dlZAogKgogKiBAcGF0aCBjaDEzL1MxM19BMTQuanMKICogQGRlc2NyaXB0aW9uIERlZmluaW5nIGZ1bmN0aW9uIG5hbWUgd2l0aCB1bmljb2RlIHN5bWJvbHMKICovCgpldmFsKCJmdW5jdGlvbiBfX2Z1bmNcdTAwNDEoX19hcmcpe3JldHVybiBfX2FyZzt9OyIpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZnVuY0EgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHVuaWNvZGUgc3ltYm9scyBpbiBmdW5jdGlvbiBuYW1lIGFyZSBhbGxvd2VkJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Unicode symbols in function name are allowed","description":"Defining function name with unicode symbols","path":"TestCases/ch13/S13_A14.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzL1MxM19BMTVfVDEuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggIl9fZnVuYyhhcmd1bWVudHMpIgogKi8KCmZ1bmN0aW9uIF9fZnVuYyhhcmd1bWVudHMpewogICAgcmV0dXJuIGFyZ3VtZW50czsKfTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYyg0MikgIT09IDQyKSB7CgkkRVJST1IoJyMxOiAiYXJndW1lbnRzIiB2YXJpYWJsZSBvdmVycmlkZXMgQWN0aXZhdGlvbk9iamVjdC5hcmd1bWVudHMnKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Declaring a function with \"__func(arguments)\"","path":"TestCases/ch13/S13_A15_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzL1MxM19BMTVfVDIuanMKICogQGRlc2NyaXB0aW9uIE92ZXJyaWRpbmcgYXJndW1lbnRzIHdpdGhpbiBmdW5jdGlvbnMgYm9keQogKi8KClRIRV9BTlNXRVI9IkFuc3dlciB0byBMaWZlLCB0aGUgVW5pdmVyc2UsIGFuZCBFdmVyeXRoaW5nIjsKCmZ1bmN0aW9uIF9fZnVuYygpewogICAgdmFyIGFyZ3VtZW50cyA9IFRIRV9BTlNXRVI7CiAgICByZXR1cm4gYXJndW1lbnRzOwp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKDQyLDQyLDQyKSAhPT0gVEhFX0FOU1dFUikgewoJJEVSUk9SKCcjMTogICJhcmd1bWVudHMiIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cycpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Overriding arguments within functions body","path":"TestCases/ch13/S13_A15_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzL1MxM19BMTVfVDMuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIHZhcmlhYmxlIG5hbWVkIHdpdGggImFyZ3VtZW50cyIgd2l0aG91dCBhIGZ1bmN0aW9uCiAqLwoKVEhFX0FOU1dFUj0iQW5zd2VyIHRvIExpZmUsIHRoZSBVbml2ZXJzZSwgYW5kIEV2ZXJ5dGhpbmciOwoKdmFyIGFyZ3VtZW50cyA9IFRIRV9BTlNXRVI7CgpmdW5jdGlvbiBfX2Z1bmMoYXJndW1lbnRzKXsKICAgIHJldHVybiBhcmd1bWVudHM7CiAgICAKfTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2Z1bmMoKSAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2Z1bmMoKSA9PT0gInVuZGVmaW5lZCIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYygpID09PScrdHlwZW9mIF9fZnVuYygpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYygiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIikgIT09ICJUaGUgVWx0aW1hdGUgUXVlc3Rpb24iKSB7CgkkRVJST1IoJyMyOiBfX2Z1bmMoIlRoZSBVbHRpbWF0ZSBRdWVzdGlvbiIpID09PSAiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIi4gQWN0dWFsOiBfX2Z1bmMoIlRoZSBVbHRpbWF0ZSBRdWVzdGlvbiIpPT09JytfX2Z1bmMoIlRoZSBVbHRpbWF0ZSBRdWVzdGlvbiIpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Declaring a variable named with \"arguments\" without a function","path":"TestCases/ch13/S13_A15_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzL1MxM19BMTVfVDQuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIHZhcmlhYmxlIG5hbWVkIHdpdGggImFyZ3VtZW50cyIgYW5kIGZvbGxvd2luZyBhICJyZXR1cm4iIHN0YXRlbWVudCB3aXRoaW4gYSBmdW5jdGlvbiBib2R5CiAqLwoKVEhFX0FOU1dFUj0iQW5zd2VyIHRvIExpZmUsIHRoZSBVbml2ZXJzZSwgYW5kIEV2ZXJ5dGhpbmciOwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICByZXR1cm4gdHlwZW9mIGFyZ3VtZW50czsKICAgIHZhciBhcmd1bWVudHMgPSBUSEVfQU5TV0VSOwp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKDQyLDQyLDQyKSAhPT0gIm9iamVjdCIpIHsKCSRFUlJPUignIzE6IF9fZnVuYyg0Miw0Miw0MikgPT09ICJvYmplY3QiLiBBY3R1YWw6IF9fZnVuYyg0Miw0Miw0Mik9PT0nK19fZnVuYyg0Miw0Miw0MikpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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/S13_A15_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzL1MxM19BMTVfVDUuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgdmFyaWFibGUgbmFtZWQgd2l0aCAiYXJndW1lbnRzIiB3aXRob3V0IGEgZnVuY3Rpb24KICovCgpUSEVfQU5TV0VSPSJBbnN3ZXIgdG8gTGlmZSwgdGhlIFVuaXZlcnNlLCBhbmQgRXZlcnl0aGluZyI7Cgp2YXIgYXJndW1lbnRzID0gVEhFX0FOU1dFUjsKCmZ1bmN0aW9uIF9fZnVuYygpewogICAgcmV0dXJuIGFyZ3VtZW50czsKfTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKCBfX2Z1bmMoKSA9PT0gVEhFX0FOU1dFUikgewoJJEVSUk9SKCcjMTogX19mdW5jKCkgIT09IFRIRV9BTlNXRVInKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYygiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIikgPT09ICJUaGUgVWx0aW1hdGUgUXVlc3Rpb24iKSB7CgkkRVJST1IoJyMyOiBfX2Z1bmMoIlRoZSBVbHRpbWF0ZSBRdWVzdGlvbiIpICE9PSAiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIicpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Creating a variable named with \"arguments\" without a function","path":"TestCases/ch13/S13_A15_T5.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBBbnkgc2VwYXJhdG9ycyBhcmUgYWRtaXR0ZWQgYmV0d2VlbiBkZWNsYXJhdGlvbiBjaHVua3MKICoKICogQHBhdGggY2gxMy9TMTNfQTE2LmpzCiAqIEBkZXNjcmlwdGlvbiBJbnNlcnRpbmcgc2VwYXJhdG9ycyBiZXR3ZWVuIGRlY2xhcmF0aW9uIGNodW5rcwogKi8KCmZ1bmN0aW9uCngKKAopCnsKfQo7Cgp4KCk7CgpmdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fTsKCnkoKTsKCmZ1bmN0aW9uCgp6CgooCgopCgp7CiAgICAKfQoKOwoKeigpOwoKZXZhbCgiZnVuY3Rpb25cdTAwMDlcdTIwMjl3KFx1MDAwQylcdTAwQTB7XHUwMDBEfTsiKTsKCncoKTsKCg==","commentary":"Any separators are admitted between declaration chunks","description":"Inserting separators between declaration chunks","path":"TestCases/ch13/S13_A16.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBjYWxsIGNhbm5vdCBhcHBlYXIgaW4gdGhlIHByb2dyYW0gYmVmb3JlIHRoZSBGdW5jdGlvbkV4cHJlc3Npb24gYXBwZWFycwogKgogKiBAcGF0aCBjaDEzL1MxM19BMTdfVDEuanMKICogQGRlc2NyaXB0aW9uIFRyeWluZyB0byBjYWxsIGEgZnVuY3Rpb24gYmVmb3JlIHRoZSBGdW5jdGlvbkV4cHJlc3Npb24gYXBwZWFycwogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5ewogICAgdmFyIF9fcmVzdWx0ID0gX19mdW5jKCk7CgkkRkFJTCgiIzEuMTogdmFyIF9fcmVzdWx0ID0gX19mdW5jKCkgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24iKTsKfSBjYXRjaChlKSB7CiAgaWYgKChlIGluc3RhbmNlb2YgVHlwZUVycm9yKSAhPT0gdHJ1ZSkgewogICAgJEVSUk9SKCcjMS4yOiBmdW5jIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciAgQWN0dWFsOiAnICsgKGUpKTsgIAogIH0KfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBfX2Z1bmMgPSBmdW5jdGlvbiAoKXtyZXR1cm4gIk9ORSI7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKdmFyIF9fcmVzdWx0ID0gX19mdW5jKCk7CmlmIChfX3Jlc3VsdCAhPT0gIk9ORSIpIHsKCSRFUlJPUignIzI6IF9fcmVzdWx0ID09PSAiT05FIi4gQWN0dWFsOiBfX3Jlc3VsdCA9PT0nK19fcmVzdWx0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCl9fZnVuYyA9IGZ1bmN0aW9uICgpe3JldHVybiAiVFdPIjt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwp2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKTsKaWYgKF9fcmVzdWx0ICE9PSAiVFdPIikgewoJJEVSUk9SKCcjMzogX19yZXN1bHQgPT09ICJUV08iLiBBY3R1YWw6IF9fcmVzdWx0ID09PScrX19yZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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/S13_A17_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBjYWxsIGNhbm5vdCBhcHBlYXIgaW4gdGhlIHByb2dyYW0gYmVmb3JlIHRoZSBGdW5jdGlvbkV4cHJlc3Npb24gYXBwZWFycwogKgogKiBAcGF0aCBjaDEzL1MxM19BMTdfVDIuanMKICogQGRlc2NyaXB0aW9uIFRyeWluZyB0byBjYWxsIGEgZnVuY3Rpb24gYmVmb3JlIHRoZSBGdW5jdGlvbkV4cHJlc3Npb24gYXBwZWFycyBhbmQgdGhlbiB1c2luZyB0aGUgRnVuY3Rpb25FeHByZXNzaW9uIG9uZSBtb3JlIHRpbWUKICovCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCnRyeXsKICAgIHZhciBfX3Jlc3VsdCA9IF9fZnVuYygpOwoJJEVSUk9SKCIjMTogdmFyIF9fcmVzdWx0ID0gX19mdW5jKCkgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24iKTsKfSBjYXRjaChlKSB7CiAgaWYgKChlIGluc3RhbmNlb2YgVHlwZUVycm9yKSAhPT0gdHJ1ZSkgewogICAgJEVSUk9SKCcjMS4yOiBmdW5jIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciAgQWN0dWFsOiAnICsgKGUpKTsgIAogIH0KfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vIG5vdyB3ZSByZWFjaCB0aGUgX19mdW5jIG92ZXJ3cml0aW5nIGJ5IG5ldyBleHByZXNzaW9uCnZhciBfX2Z1bmMgPSBmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gIk9ORSI7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKdmFyIF9fcmVzdWx0ID0gX19mdW5jKCk7CmlmIChfX3Jlc3VsdCAhPT0gIk9ORSIpIHsKCSRFUlJPUignIzI6IF9fcmVzdWx0ID09PSAiT05FIi4gQWN0dWFsOiBfX3Jlc3VsdCA9PT0nK19fcmVzdWx0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCl9fZnVuYyA9IGZ1bmN0aW9uIF9fZnVuYygpe3JldHVybiAiVFdPIjt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwp2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKTsKaWYgKF9fcmVzdWx0ICE9PSAiVFdPIikgewoJJEVSUk9SKCcjMzogX19yZXN1bHQgPT09ICJUV08iLiBBY3R1YWw6IF9fcmVzdWx0ID09PScrX19yZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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/S13_A17_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDbG9zdXJlcyBhcmUgYWRtaXR0ZWQKICoKICogQHBhdGggY2gxMy9TMTNfQTE4LmpzCiAqIEBkZXNjcmlwdGlvbiBVc2luZyBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGFzIGEgZnVuY3Rpb24gcGFyYW1ldGVyCiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIHNpbnggIT09ICd1bmRlZmluZWQnKSB7CgkkRVJST1IoJyMxOiB0eXBlb2Ygc2lueCA9PT0gXCd1bmRlZmluZWRcJy4gQWN0dWFsOiB0eXBlb2Ygc2lueCA9PT0nK3R5cGVvZiBzaW54KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBfX3ZhbCA9IGZ1bmN0aW9uIGRlcml2YXRpdmUoZiwgZHgpIHsKICAgIHJldHVybiBmdW5jdGlvbih4KSB7CiAgICAgIHJldHVybiAoZih4ICsgZHgpIC0gZih4KSkgLyBkeDsKICAgIH07Cn0oZnVuY3Rpb24gc2lueCh4KXtyZXR1cm4gTWF0aC5zaW4oeCk7fSwuMDAwMSkoMC41KTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHR5cGVvZiBzaW54ICE9PSAndW5kZWZpbmVkJykgewoJJEVSUk9SKCcjMjogdHlwZW9mIHNpbnggPT09IFwndW5kZWZpbmVkXCcuIEFjdHVhbDogdHlwZW9mIHNpbnggPT09Jyt0eXBlb2Ygc2lueCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Closures are admitted","description":"Using a function declaration as a function parameter","path":"TestCases/ch13/S13_A18.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAidmFyIiBkb2VzIG5vdCBvdmVycmlkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbgogKgogKiBAcGF0aCBjaDEzL1MxM19BMTlfVDEuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gYW5kIGEgdmFyaWFibGUgd2l0aCBpZGVudGljYWwgSWRlbnRpZmllcnMgaW4gZ2xvYmFsIHNjb3BlCiAqLwoKLy8gc2luY2UgInZhciIgZG9lcyBub3Qgb3ZlcnJpZGUgZnVuY3Rpb24gZGVjbGFyYXRpb24gX19kZWNsIGlzIHNldCB0byBmdW5jdGlvbgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19kZWNsICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19kZWNsID09PSAiZnVuY3Rpb24iLiBBY3R1YWw6IHR5cGVvZiBfX2RlY2wgPT09Jyt0eXBlb2YgX19kZWNsKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBfX2RlY2wgPSAxOwoKLy9zaW5jZSBzdGF0ZW1lbnQgd2FzIGV2YWx1dGVkIF9fZGVjbCB0dXJucyB0byAxIGZyb20gZnVuY3Rpb24KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19kZWNsICE9PSAxKSB7CgkkRVJST1IoJyMyOiBfX2RlY2wgPT09IDEuIEFjdHVhbDogX19kZWNsID09PScrX19kZWNsKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIF9fZGVjbCgpe3JldHVybiAxO30KCg==","commentary":"\"var\" does not override function declaration","description":"Creating a function and a variable with identical Identifiers in global scope","path":"TestCases/ch13/S13_A19_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiAidmFyIiBkb2VzIG5vdCBvdmVycmlkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbgogKgogKiBAcGF0aCBjaDEzL1MxM19BMTlfVDIuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gYW5kIGEgdmFyaWFibGUgd2l0aCBpZGVudGljYWwgSWRlbnRpZmllcnMgd2l0aGluIGZ1bmN0aW9uIHNjb3BlCiAqLwoKKGZ1bmN0aW9uICgpewoKICAgIC8vIHNpbmNlICJ2YXIiIGRvZXMgbm90IG92ZXJyaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIF9fZGVjbCBpcyBzZXQgdG8gZnVuY3Rpb24KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgLy9DSEVDSyMxCiAgICBpZiAodHlwZW9mIF9fZGVjbCAhPT0gImZ1bmN0aW9uIikgewogICAgCSRFUlJPUignIzE6IHR5cGVvZiBfX2RlY2wgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZGVjbCA9PT0nK3R5cGVvZiBfX2RlY2wpOwogICAgfQogICAgLy8KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgCiAgICB2YXIgX19kZWNsID0gMTsKICAgIAogICAgLy9zaW5jZSBzdGF0ZW1lbnQgd2FzIGV2YWx1dGVkIF9fZGVjbCB0dXJucyB0byAxIGZyb20gZnVuY3Rpb24KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgLy9DSEVDSyMyCiAgICBpZiAoX19kZWNsICE9PSAxKSB7CiAgICAJJEVSUk9SKCcjMjogX19kZWNsID09PSAxLiBBY3R1YWw6IF9fZGVjbCA9PT0nK19fZGVjbCk7CiAgICB9CiAgICAvLwogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgogICAgZnVuY3Rpb24gX19kZWNsKCl7cmV0dXJuIDE7fQp9KSgpOyAgICAKCg==","commentary":"\"var\" does not override function declaration","description":"Creating a function and a variable with identical Identifiers within function scope","path":"TestCases/ch13/S13_A19_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBmdW5jdGlvbiBtdXN0IGJlIGV2YWx1YXRlZCBpbnNpZGUgdGhlIGV4cHJlc3Npb24KICoKICogQHBhdGggY2gxMy9TMTNfQTJfVDEuanMKICogQGRlc2NyaXB0aW9uIERlZmluaW5nIGZ1bmN0aW9uIGJvZHkgd2l0aCAicmV0dXJuIGFyZyIKICovCgp2YXIgeCA9IChmdW5jdGlvbiBfX2Z1bmMoYXJnKXtyZXR1cm4gYXJnfSkoMSk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh4ICE9PSAxKSB7CgkkRVJST1IoJyMxOiB4ID09PSAxLiBBY3R1YWw6IHggPT09Jyt4KTsKfQoKLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICh0eXBlb2YgX19mdW5jICE9PSAndW5kZWZpbmVkJykgewoJJEVSUk9SKCcjMjogdHlwZW9mIF9fZnVuYyA9PT0gXCd1bmRlZmluZWRcJy4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"function must be evaluated inside the expression","description":"Defining function body with \"return arg\"","path":"TestCases/ch13/S13_A2_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBmdW5jdGlvbiBtdXN0IGJlIGV2YWx1YXRlZCBpbnNpZGUgdGhlIGV4cHJlc3Npb24KICoKICogQHBhdGggY2gxMy9TMTNfQTJfVDIuanMKICogQGRlc2NyaXB0aW9uIERlZmluaW5nIGZ1bmN0aW9uIGJvZHkgd2l0aCAicmV0dXJuIGFyZyArIGFyZ3VtZW50c1sxXSIKICovCgp2YXIgeCA9IChmdW5jdGlvbiBfX2Z1bmMoYXJnKXtyZXR1cm4gYXJnICsgYXJndW1lbnRzWzFdfSkoMSwiMSIpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoeCAhPT0gIjExIikgewoJJEVSUk9SKCcjMTogeCA9PT0gIjExIi4gQWN0dWFsOiB4ID09PScreCk7Cn0KCi8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAodHlwZW9mIF9fZnVuYyAhPT0gJ3VuZGVmaW5lZCcpIHsKCSRFUlJPUignIzI6IHR5cGVvZiBfX2Z1bmMgPT09IFwndW5kZWZpbmVkXCcuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"function must be evaluated inside the expression","description":"Defining function body with \"return arg + arguments[1]\"","path":"TestCases/ch13/S13_A2_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBmdW5jdGlvbiBtdXN0IGJlIGV2YWx1YXRlZCBpbnNpZGUgdGhlIGV4cHJlc3Npb24KICoKICogQHBhdGggY2gxMy9TMTNfQTJfVDMuanMKICogQGRlc2NyaXB0aW9uIERlZmluaW5nIGZ1bmN0aW9uIGJvZHkgd2l0aCAicmV0dXJuIGFyZ3VtZW50c1swXSArIi0iKyBhcmd1bWVudHNbMV0iCiAqLwoKdmFyIHggPSAoZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuIGFyZ3VtZW50c1swXSArIi0iKyBhcmd1bWVudHNbMV19KSgiT2JpIiwiV2FuIik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh4ICE9PSAiT2JpLVdhbiIpIHsKCSRFUlJPUignIzE6IHggPT09ICJPYmktV2FuIi4gQWN0dWFsOiB4ID09PScreCk7Cn0KCi8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAodHlwZW9mIF9fZnVuYyAhPT0gJ3VuZGVmaW5lZCcpIHsKCSRFUlJPUignIzI6IHR5cGVvZiBfX2Z1bmMgPT09IFwndW5kZWZpbmVkXCcuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"function must be evaluated inside the expression","description":"Defining function body with \"return arguments[0] +\"-\"+ arguments[1]\"","path":"TestCases/ch13/S13_A2_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmllciBpbiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tIGluc2lkZSB0aGUgRnVuY3Rpb25FeHByZXNzaW9uJ3MgRnVuY3Rpb25Cb2R5IHRvIGFsbG93IHRoZSBmdW5jdGlvbiBjYWxsaW5nIGl0c2VsZiByZWN1cnNpdmVseQogKgogKiBAcGF0aCBjaDEzL1MxM19BM19UMS5qcwogKiBAZGVzY3JpcHRpb24gQ3JlYXRpbmcgYSByZWN1cnNpdmUgZnVuY3Rpb24gdGhhdCBjYWxjdWxhdGVzIGZhY3RvcmlhbCwgYXMgYSB2YXJpYWJsZS4KICogRnVuY3Rpb24gY2FsbCBpdHNlbGYgYnkgaXRgcyBuYW1lCiAqLwoKdmFyIF9fZnVuYyA9IGZ1bmN0aW9uIF9fZXhwX19mdW5jKGFyZyl7CiAgICBpZiAoYXJnID09PSAxKSB7CiAgICAJcmV0dXJuIGFyZzsKICAgIH0gZWxzZSB7CiAgICAJcmV0dXJuIF9fZXhwX19mdW5jKGFyZy0xKSphcmc7CiAgICB9Cn07Cgp2YXIgZmFjdF9vZl8zID0gIF9fZnVuYygzKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKGZhY3Rfb2ZfMyAhPT0gNikgewoJJEVSUk9SKCIjMTogZmFjdF9vZl8zID09PSA2LiBBY3R1YWw6IGZhY3Rfb2ZfMyA9PT0iK2ZhY3Rfb2ZfMyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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/S13_A3_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmllciBpbiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tIGluc2lkZSB0aGUgRnVuY3Rpb25FeHByZXNzaW9uJ3MgRnVuY3Rpb25Cb2R5IHRvIGFsbG93IHRoZSBmdW5jdGlvbiBjYWxsaW5nIGl0c2VsZiByZWN1cnNpdmVseQogKgogKiBAcGF0aCBjaDEzL1MxM19BM19UMi5qcwogKiBAZGVzY3JpcHRpb24gQ3JlYXRpbmcgYSByZWN1cnNpdmUgZnVuY3Rpb24gdGhhdCBjYWxjdWxhdGVzIGZhY3RvcmlhbCwgYXMgYSB2YXJpYWJsZS4KICogRnVuY3Rpb24gY2FsbHMgaXRzZWxmIGJ5IHRoZSBuYW1lIG9mIHRoZSB2YXJpYWJsZQogKi8KCnZhciBfX2Z1bmMgPSBmdW5jdGlvbiAoYXJnKXsKICAgIGlmIChhcmcgPT09IDEpIHsKICAgIAlyZXR1cm4gYXJnOwogICAgfSBlbHNlIHsKICAgIAlyZXR1cm4gX19mdW5jKGFyZy0xKSphcmc7CiAgICB9Cn07Cgp2YXIgZmFjdF9vZl8zID0gIF9fZnVuYygzKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKGZhY3Rfb2ZfMyAhPT0gNikgewoJJEVSUk9SKCIjMTogZmFjdF9vZl8zID09PSA2LiBBY3R1YWw6IGZhY3Rfb2ZfMyA9PT0iK2ZhY3Rfb2ZfMyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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/S13_A3_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmllciBpbiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tIGluc2lkZSB0aGUgRnVuY3Rpb25FeHByZXNzaW9uJ3MgRnVuY3Rpb25Cb2R5IHRvIGFsbG93IHRoZSBmdW5jdGlvbiBjYWxsaW5nIGl0c2VsZiByZWN1cnNpdmVseQogKgogKiBAcGF0aCBjaDEzL1MxM19BM19UMy5qcwogKiBAZGVzY3JpcHRpb24gQ3JlYXRpbmcgc2ltcGxlIHJlY3Vyc2l2ZSBmdW5jdGlvbiB0aGF0IGNhbGN1bGF0ZXMgZmFjdG9yaWFsCiAqLwoKZnVuY3Rpb24gX19mdW5jKGFyZyl7CiAgICBpZiAoYXJnID09PSAxKSB7CiAgICAJcmV0dXJuIGFyZzsKICAgIH0gZWxzZSB7CiAgICAJcmV0dXJuIF9fZnVuYyhhcmctMSkqYXJnOwogICAgfQp9OwoKdmFyIGZhY3Rfb2ZfMyA9ICBfX2Z1bmMoMyk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChmYWN0X29mXzMgIT09IDYpIHsKCSRFUlJPUigiIzE6IGZhY3Rfb2ZfMyA9PT0gNi4gQWN0dWFsOiBmYWN0X29mXzMgPT09IitmYWN0X29mXzMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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/S13_A3_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzL1MxM19BNF9UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHN0cmluZwogKi8KCmZ1bmN0aW9uIF9fZnVuYygpe3JldHVybiAiemlnLXppZy1zcHV0bmlrIjt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMSAKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2Z1bmMgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCkgIT09ICJ6aWctemlnLXNwdXRuaWsiKSB7CgkkRVJST1IoJyMyOiBfX2Z1bmMoKSA9PT0gInppZy16aWctc3B1dG5payIuIEFjdHVhbDogX19mdW5jKCkgPT09JytfX2Z1bmMoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"The production FunctionDeclaration: \"function Identifier ( FormalParameterList_opt ) { FunctionBody }\" is processed by function declarations","description":"Declaring a function that returns string","path":"TestCases/ch13/S13_A4_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzL1MxM19BNF9UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gdGhhdCB1c2VzIHByZWZpeCBpbmNyZW1lbnQgb3BlcmF0b3Igd2l0aGluIGl0cyAicmV0dXJuIiBFeHByZXNzaW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jKGFyZyl7cmV0dXJuICsrYXJnO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxIAppZiAodHlwZW9mIF9fZnVuYyAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2Z1bmMoMSkgIT09IDIpIHsKCSRFUlJPUignIzI6IF9fZnVuYygxKSA9PT0gMi4gQWN0dWFsOiBfX2Z1bmMoMSkgPT09JytfX2Z1bmMoMSkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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/S13_A4_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzL1MxM19BNF9UMy5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gdGhhdCB1c2VzIGFyaXRobWV0aWNhbCBvcGVyYXRvcnMgd2l0aGluIGl0cyAicmV0dXJuIiBFeHByZXNzaW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jKGFyZzEsIGFyZzIsIGFyZzMpe3JldHVybiBhcmcxKz0oYXJnMis9YXJnMyk7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEgCmlmICh0eXBlb2YgX19mdW5jICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19mdW5jID09PSAiZnVuY3Rpb24iLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYygxMCwgMjAsIDMwKSAhPT0gNjApIHsKCSRFUlJPUignIzI6IF9fZnVuYygxMCwgMjAsIDMwKSA9PT0gNjAuIEFjdHVhbDogX19mdW5jKDEwLDIwLDMwKSA9PT0nK19fZnVuYygxMCwyMCwzMCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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/S13_A4_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzL1MxM19BNF9UNC5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gdGhhdCB1c2VzIHN0cmluZ3MgY29uY2F0ZW5haW9uIG9wZWF0b3Igd2l0aGluIGl0cyAicmV0dXJuIiBFeHByZXNzaW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuIGFyZ3VtZW50c1swXS5uYW1lICsgIiAiICsgYXJndW1lbnRzWzBdLnN1cm5hbWU7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEgCmlmICh0eXBlb2YgX19mdW5jICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19mdW5jID09PSAiZnVuY3Rpb24iLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYyh7bmFtZTonZm94Jywgc3VybmFtZTonbWFsZGVyJ30pICE9PSAiZm94IG1hbGRlciIpIHsKCSRFUlJPUignIzI6IF9fZnVuYyh7bmFtZTpcJ2ZveFwnLCBzdXJuYW1lOlwnbWFsZGVyXCd9KSA9PT0gImZveCBtYWxkZXIiLiBBY3R1YWw6IF9fZnVuYyh7bmFtZTpcJ2ZveFwnLCBzdXJuYW1lOlwnbWFsZGVyXCd9KSA9PT0nK19fZnVuYyh7bmFtZTonZm94Jywgc3VybmFtZTonbWFsZGVyJ30pKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIGZ1bmNfXyhhcmcpe3JldHVybiBhcmcubmFtZSArICIgIiArIGFyZy5zdXJuYW1lO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzIAppZiAodHlwZW9mIGZ1bmNfXyAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMzogdHlwZW9mIGZ1bmNfXyA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM0CmlmIChmdW5jX18oe25hbWU6J2pvaG4nLCBzdXJuYW1lOidsZW5ub24nfSkgIT09ICJqb2huIGxlbm5vbiIpIHsKCSRFUlJPUignIzQ6IGZ1bmNfXyh7bmFtZTpcJ2pvaG5cJywgc3VybmFtZTpcJ2xlbm5vblwnfSkgPT09ICJqb2huIGxlbm5vbiIuIEFjdHVhbDogX19mdW5jKHtuYW1lOlwnam9oblwnLCBzdXJuYW1lOlwnbGVubm9uXCd9KSA9PT0nK19fZnVuYyh7bmFtZTonam9obicsIHN1cm5hbWU6J2xlbm5vbid9KSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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/S13_A4_T4.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIGNhbiBiZSBvdmVycmlkZWQgYnkgb3RoZXIgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aXRoIHRoZSBzYW1lIElkZW50aWZpZXIKICoKICogQHBhdGggY2gxMy9TMTNfQTZfVDEuanMKICogQGRlc2NyaXB0aW9uIER1cGxpY2F0aW5nIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuIDF9OwogCnZhciBfX3N0b3JlX19mdW5jID0gX19mdW5jOwogCnZhciBfXzEgPSBfX2Z1bmMoKTsKIAogZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuICdBJ307CiAKdmFyIF9fQSA9IF9fZnVuYygpOwogCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fc3RvcmVfX2Z1bmMgIT09IF9fZnVuYykgewoJJEVSUk9SKCcjMTogX19zdG9yZV9fZnVuYyA9PT0gX19mdW5jLiBBY3R1YWw6IF9fc3RvcmVfX2Z1bmMgPT09JytfX3N0b3JlX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gCiAKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX18xICE9PSBfX0EpIHsKCSRFUlJPUignIzI6IF9fMSA9PT0gX19BLiBBY3R1YWw6IF9fMSA9PT0nK19fMSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"FunctionDeclaration can be overrided by other FunctionDeclaration with the same Identifier","description":"Duplicating function declaration","path":"TestCases/ch13/S13_A6_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIGNhbiBiZSBvdmVycmlkZWQgYnkgb3RoZXIgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aXRoIHRoZSBzYW1lIElkZW50aWZpZXIKICoKICogQHBhdGggY2gxMy9TMTNfQTZfVDIuanMKICogQGRlc2NyaXB0aW9uIENhbGxpbmcgYSBmdW5jdGlvbiBiZWZvcmUgaXQgaXMgZGVjbGFyZWQgb25lIG1vcmUgdGltZQogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5ewogICAgdmFyIF9fcmVzdWx0ID0gX19mdW5jKCk7Cn0gY2F0Y2goZSkgewogICAgJEZBSUwoIiMxOiBGdW5jdGlvbiBjYWxsIGNhbiBhcHBlYXJzIGluIHRoZSBwcm9ncmFtIGJlZm9yZSB0aGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBhcHBlYXJzIik7Cn0KaWYgKF9fcmVzdWx0ICE9PSAiU0VDT05EIikgewoJJEVSUk9SKCcjMS4xOiBfX3Jlc3VsdCA9PT0gIlNFQ09ORCIuIEFjdHVhbDogX19yZXN1bHQgPT09JytfX3Jlc3VsdCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gIkZJUlNUIjt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgpfX3Jlc3VsdCA9IF9fZnVuYygpOwppZiAoX19yZXN1bHQgIT09ICJTRUNPTkQiKSB7CgkkRVJST1IoJyMyOiBfX3Jlc3VsdCA9PT0gIlNFQ09ORCIuIEFjdHVhbDogX19yZXN1bHQgPT09JytfX3Jlc3VsdCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gIlNFQ09ORCI7fTsKCg==","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/S13_A6_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgRnVuY3Rpb25Cb2R5IG11c3QgYmUgU291cmNlRWxlbWVudHMKICoKICogQHBhdGggY2gxMy9TMTNfQTdfVDEuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nIG9ubHkgU291cmNlRWxlbWVudHMgd2l0aGluIHRoZSBGdW5jdGlvbkJvZHkKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXsnZ3JvdW5kIGNvbnRyb2wgdG8gbWFqb3IgdG9tJ307Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2Z1bmMgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19mdW5jX18yKCl7Yn07Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHR5cGVvZiBfX2Z1bmNfXzIgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzI6IHR5cGVvZiBfX2Z1bmNfXzIgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuY19fMiA9PT0nK3R5cGVvZiBfX2Z1bmNfXzIpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19mdW5jX18zKCl7MX07Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKHR5cGVvZiBfX2Z1bmNfXzMgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzM6IHR5cGVvZiBfX2Z1bmNfXzMgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuY19fMyA9PT0nK3R5cGVvZiBfX2Z1bmNfXzMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19mdW5jX180KCl7MStjfTsKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNAppZiAodHlwZW9mIF9fZnVuY19fNCAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjNDogdHlwZW9mIF9fZnVuY19fNCA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jX180ID09PScrdHlwZW9mIF9fZnVuY19fNCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2Z1bmNfXzUoKXtpbmMoZCl9OwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM1CmlmICh0eXBlb2YgX19mdW5jX181ICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyM1OiB0eXBlb2YgX19mdW5jX181ID09PSAiZnVuY3Rpb24iLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmNfXzUgPT09Jyt0eXBlb2YgX19mdW5jX181KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIF9fZnVuY19fNigpe3ZhciBcdTAwNDIgPSAxO307Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzYKaWYgKHR5cGVvZiBfX2Z1bmNfXzYgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzY6IHR5cGVvZiBfX2Z1bmNfXzYgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuY19fNiA9PT0nK3R5cGVvZiBfX2Z1bmNfXzYpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy9mdW5jdGlvbiBfX2Z1bmNfXzcoKXt2YXIgXHUwMDNkID0gMTt9OwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLy8vQ0hFQ0sjNwovL2lmICh0eXBlb2YgX19mdW5jX183ICE9PSAiZnVuY3Rpb24iKSB7Ci8vCSRFUlJPUignIzc6IFRoZSBGdW5jdGlvbkJvZHkgbXVzdCBiZSBTb3VyY2VFbGVtZW50cycpOwovL30KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"The FunctionBody must be SourceElements","description":"Using only SourceElements within the FunctionBody","path":"TestCases/ch13/S13_A7_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgRnVuY3Rpb25Cb2R5IG11c3QgYmUgU291cmNlRWxlbWVudHMKICoKICogQHBhdGggY2gxMy9TMTNfQTdfVDIuanMKICogQGRlc2NyaXB0aW9uIEluc2VydGluZyBlbGVtZW50cyB0aGF0IGlzIGRpZmZlcmVudCBmcm9tIFNvdXJjZUVsZW1lbnRzIGludG8gdGhlIEZ1bmN0aW9uQm9keQogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5ewoJZXZhbCgiZnVuY3Rpb24gX19mdW5jKCl7LyBBQkN9Iik7CgkkRVJST1IoJyMxOiBldmFsKCJmdW5jdGlvbiBfX2Z1bmMoKXsvIEFCQ30iKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoKGUpewoJaWYoIShlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKXsKCQkkRVJST1IoJyMxLjE6IGV2YWwoImZ1bmN0aW9uIF9fZnVuYygpey8gQUJDfSIpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uIG9mIFN5bnRheEVycm9yLiBBY3R1YWw6IGV4Y2VwdGlvbiBpcyAnK2UpOwoJfQp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwp0cnl7CglldmFsKCJmdW5jdGlvbiBfX2Z1bmMoKXsmMX0iKTsKCSRFUlJPUignIzM6IGV2YWwoImZ1bmN0aW9uIF9fZnVuYygpeyYxfSIpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0gY2F0Y2goZSl7CglpZighKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpewoJCSRFUlJPUignIzMuMTogZXZhbCgiZnVuY3Rpb24gX19mdW5jKCl7JjF9IikgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24gb2YgU3ludGF4RXJyb3IuIEFjdHVhbDogZXhjZXB0aW9uIGlzICcrZSk7Cgl9Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM0CnRyeXsKCWV2YWwoImZ1bmN0aW9uIF9fZnVuYygpeyMgQUJDfSIpOwoJJEVSUk9SKCcjNDogZXZhbCgiZnVuY3Rpb24gX19mdW5jKCl7IyBBQkN9IikgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKTsKfSBjYXRjaChlKXsKCWlmKCEoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSl7CgkJJEVSUk9SKCcjNC4xOiBldmFsKCJmdW5jdGlvbiBfX2Z1bmMoKXsjIEFCQ30iKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbiBvZiBTeW50YXhFcnJvci4gQWN0dWFsOiBleGNlcHRpb24gaXMgJytlKTsKCX0KfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"The FunctionBody must be SourceElements","description":"Inserting elements that is different from SourceElements into the FunctionBody","path":"TestCases/ch13/S13_A7_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgRnVuY3Rpb25Cb2R5IG11c3QgYmUgU291cmNlRWxlbWVudHMKICoKICogQHBhdGggY2gxMy9TMTNfQTdfVDMuanMKICogQGRlc2NyaXB0aW9uIENoZWNraW5nIGlmIGV4ZWN1dGlvbiBvZiAiZnVuY3Rpb24gX19mdW5jKCl7XEFcQlxDfSIgZmFpbHMKICogQG5lZ2F0aXZlCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7XEFcQlxDfTsKCg==","commentary":"The FunctionBody must be SourceElements","description":"Checking if execution of \"function __func(){\\A\\B\\C}\" fails","negative":"","path":"TestCases/ch13/S13_A7_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBBcmd1bWVudHMgcHJvcGVydHkgb2YgYWN0aXZhdGlvbiBvYmplY3QgY29udGFpbnMgcmVhbCBwYXJhbXMgdG8gYmUgcGFzc2VkCiAqCiAqIEBwYXRoIGNoMTMvUzEzX0E4X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBDcmVhdGluZyBhIGZ1bmN0aW9uIGRlY2xhcmVkIHdpdGggImZ1bmN0aW9uIF9fZnVuYyhwYXJhbTEsIHBhcmFtMiwgcGFyYW0zKSIgYW5kIHVzaW5nIGFyZ3VtZW50cy5sZW5ndGggcHJvcGVydHkgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgdGVzdAogKi8KCiBmdW5jdGlvbiBfX2Z1bmMocGFyYW0xLCBwYXJhbTIsIHBhcmFtMykgewogCXJldHVybiBhcmd1bWVudHMubGVuZ3RoOwogfQogCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygnQScpICE9PSAxKSB7CiAJJEVSUk9SKCcjMTogX19mdW5jKFwnQVwnKSA9PT0gMS4gQWN0dWFsOiBfX2Z1bmMoXCdBXCcpID09PScrX19mdW5jKCdBJykpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCdBJywgJ0InLCAxLCAyLF9fZnVuYykgIT09IDUpIHsKCSRFUlJPUignIzI6IF9fZnVuYyhcJ0FcJywgXCdCXCcsIDEsIDIsX19mdW5jKSA9PT0gNS4gQWN0dWFsOiBfX2Z1bmMoXCdBXCcsIFwnQlwnLCAxLCAyLF9fZnVuYykgPT09JytfX2Z1bmMoJ0EnLCAnQicsIDEsIDIsX19mdW5jKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKIAogCgo=","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/S13_A8_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBBcmd1bWVudHMgcHJvcGVydHkgb2YgYWN0aXZhdGlvbiBvYmplY3QgY29udGFpbnMgcmVhbCBwYXJhbXMgdG8gYmUgcGFzc2VkCiAqCiAqIEBwYXRoIGNoMTMvUzEzX0E4X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBDcmVhdGluZyBhIGZ1bmN0aW9uIHdpdGggbm8gcGFyYW1ldGVycyBhbmQgdXNpbmcgYXJndW1lbnRzLmxlbmd0aCBwcm9wZXJ0eSBpbiBvcmRlciB0byBwZXJmb3JtIHRoZSB0ZXN0CiAqLwoKIGZ1bmN0aW9uIF9fZnVuYygpIHsKIAlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDsKIH0KIAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoJ0EnKSAhPT0gMSkgewogCSRFUlJPUignIzE6IF9fZnVuYyhcJ0FcJykgPT09IDEuIEFjdHVhbDogX19mdW5jKFwnQVwnKSA9PT0nK19fZnVuYygnQScpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYygnQScsICdCJywgMSwgMixfX2Z1bmMpICE9PSA1KSB7CgkkRVJST1IoJyMyOiBfX2Z1bmMoXCdBXCcsIFwnQlwnLCAxLCAyLF9fZnVuYykgPT09IDUuIEFjdHVhbDogX19mdW5jKFwnQVwnLCBcJ0JcJywgMSwgMixfX2Z1bmMpID09PScrX19mdW5jKCdBJywgJ0InLCAxLCAyLF9fZnVuYykpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19mdW5jKCkgIT09IDApIHsKCSRFUlJPUignIzM6IF9fZnVuYygpID09PSAwLiBBY3R1YWw6IF9fZnVuYygpID09PScrX19mdW5jKCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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/S13_A8_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbiBjYW4gYmUgcGFzc2VkIGFzIGFyZ3VtZW50CiAqCiAqIEBwYXRoIGNoMTMvUzEzX0E5LmpzCiAqIEBkZXNjcmlwdGlvbiBVc2luZyBmdW5jdGlvbiBhcyBhcmd1bWVudCBvZiBhbm90aGVyIGZ1bmN0aW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jX19JTkMoYXJnKXtyZXR1cm4gYXJnICsgMTt9OwpmdW5jdGlvbiBfX2Z1bmNfX01VTFQoaW5jcmVtZW50YXRvciwgYXJnLCBtdWx0KXsgcmV0dXJuIGluY3JlbWVudGF0b3IoYXJnKSptdWx0OyB9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jX19NVUxUKF9fZnVuY19fSU5DLCAyLCAyKSAhPT0gNikgewoJJEVSUk9SKCcjMTogZnVuY3Rpb24gIGNhbiBiZSBwYXNzZWQgYXMgYXJndW1lbnQnKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","commentary":"Function can be passed as argument","description":"Using function as argument of another function","path":"TestCases/ch13/S13_A9.js"},{"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":"LyoqDQogKiBAcGF0aCBjaDEzLzEzLjAvMTNfNC0xN2dzLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTb3VyY2VFbGVtZW50cyBpcyBldmFsdWF0ZWQgYXMgc3RyaWN0IG1vZGUgY29kZSB3aGVuIGEgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY29udGFpbmVkIGluIHN0cmljdCBtb2RlIGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKiBAbmVnYXRpdmUgTm90RWFybHlFcnJvcg0KICovDQoNCiJ1c2Ugc3RyaWN0IjsNCnZhciBfMTNfNF8xN19mdW4gPSBuZXcgRnVuY3Rpb24oJ2V2YWwgPSA0MjsnKTsNCnRocm93IE5vdEVhcmx5RXJyb3I7DQo=","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":"LyoqDQogKiBAcGF0aCBjaDEzLzEzLjAvMTNfNC01Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gYSBGdW5jdGlvbkRlY2xhcmF0aW9uIGlzIGNvbnRhaW5lZCBpbiBzdHJpY3QgbW9kZSBjb2RlDQogKiBAb25seVN0cmljdA0KICogQG5lZ2F0aXZlIF4oKD8hTm90RWFybHlFcnJvcikuKSokDQogKi8NCg0KInVzZSBzdHJpY3QiOw0KdGhyb3cgTm90RWFybHlFcnJvcjsNCmZ1bmN0aW9uIF8xM18wXzRfNV9mdW4oKSB7IGV2YWwgPSA0MjsgfTsNCg==","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":"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":"LyoqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0xM2dzLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0TW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiAnYXJndW1lbnRzJyBvY2N1cnMgYXMgdGhlIElkZW50aWZpZXIgb2YgYSBGdW5jdGlvbkRlY2xhcmF0aW9uDQogKiBAb25seVN0cmljdA0KICogQG5lZ2F0aXZlIF4oKD8hTm90RWFybHlFcnJvcikuKSokDQogKi8NCu+7vyJ1c2Ugc3RyaWN0IjsNCnRocm93IE5vdEVhcmx5RXJyb3I7DQpmdW5jdGlvbiBhcmd1bWVudHMoKSB7IH07","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":"LyoqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0xZ3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiB0aGUgaWRlbnRpZmllciAnZXZhbCcgYXBwZWFycyB3aXRoaW4gYSBGb3JtYWxQYXJhbWV0ZXJMaXN0IG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBeKCg/IU5vdEVhcmx5RXJyb3IpLikqJA0KICovDQoidXNlIHN0cmljdCI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KZnVuY3Rpb24gXzEzXzFfMV9mdW4oZXZhbCkgeyB9","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":"LyoqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS00Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiB0aGUgaWRlbnRpZmllciAnYXJndW1lbnRzJyBhcHBlYXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3Qgb2YgYSBzdHJpY3QgbW9kZSBGdW5jdGlvbkV4cHJlc3Npb24NCiAqIEBvbmx5U3RyaWN0DQogKiBAbmVnYXRpdmUgXigoPyFOb3RFYXJseUVycm9yKS4pKiQNCiAqLw0KInVzZSBzdHJpY3QiOw0KdGhyb3cgTm90RWFybHlFcnJvcjsNCnZhciBfMTNfMV80X2Z1biA9IGZ1bmN0aW9uIChhcmd1bWVudHMpIHsgfTs=","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":"LyoqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS01Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gaGFzIHR3byBpZGVudGljYWwgcGFyYW1ldGVycw0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBeKCg/IU5vdEVhcmx5RXJyb3IpLikqJA0KICovDQoidXNlIHN0cmljdCI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KZnVuY3Rpb24gXzEzXzFfNV9mdW4ocGFyYW0sIHBhcmFtKSB7IH0=","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":"LyoqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS04Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBoYXMgdHdvIGlkZW50aWNhbCBwYXJhbWV0ZXJzDQogKiBAb25seVN0cmljdA0KICogQG5lZ2F0aXZlIF4oKD8hTm90RWFybHlFcnJvcikuKSokDQogKi8NCiJ1c2Ugc3RyaWN0IjsNCnRocm93IE5vdEVhcmx5RXJyb3I7DQp2YXIgXzEzXzFfOF9mdW4gPSBmdW5jdGlvbiAocGFyYW0sIHBhcmFtKSB7IH07","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1QzLmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgbnVtYmVyLiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMoKSIKICovCgp2YXIgeDsKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB4ID0gMTsKICAgIHJldHVybiB4Owp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMKdHJ5IHsKCXg9eDsKCSRFUlJPUignIzA6ICJ4PXgiIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0gY2F0Y2ggKGUpIHt9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnl7CiAgICB2YXIgX194PV9fZnVuYygpOwp9IGNhdGNoKGUpewogICAgJEVSUk9SKCcjMTogdmFyIF9feD1fX2Z1bmMoKSBkb2VzIG5vdCBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbi4gQWN0dWFsOiBleGNlcHRpb24gaXMgJytlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9feCAhPT0gMSkgewoJJEVSUk9SKCcjMjogX194ID09PSAxLiBBY3R1YWw6IF9feCA9PT0nK19feCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmICh4ICE9PSAxKSB7CgkkRVJST1IoJyMzOiB4ID09PSAxLiBBY3R1YWw6IHggPT09Jyt4KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1Q0LmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgYm9vbGVhbi4gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiZnVuY3Rpb24gX19mdW5jKCkiCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB2YXIgeCA9IHRydWU7CiAgICByZXR1cm4geDsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjCnRyeSB7Cgl4PXg7CgkkRVJST1IoJyMwOiAieD14IiBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7fQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5ewogICAgdmFyIF9feD1fX2Z1bmMoKQp9IGNhdGNoKGUpewogICAgJEVSUk9SKCcjMTogdmFyIF9feD1fX2Z1bmMoKSBkb2VzIG5vdCBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbi4gQWN0dWFsOiBleGNlcHRpb24gaXMgJytlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKCEoX194KSkgewoJJEVSUk9SKCcjMjogX194ID09PSB0cnVlLiBBY3R1YWw6IF9feCA9PT0nK19feCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCnRyeSB7Cgl4PXg7CgkkRVJST1IoJyMzOiAieD14IiBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7fQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBwb3NzaWJsZSBhcyBsb25nIGFzIHRoaXMuYW55X0Z1bmN0aW9uIGlzIGRlY2xhcmVkIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTExLmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCB3aXRoICJmdW5jdGlvbiBmdW5jKCkiCiAqLwoKZnVuY3Rpb24gRkFDVE9SWSgpewogICB0aGlzLmlkID0gMDsKICAgICAgCiAgIHRoaXMuaWQgPSB0aGlzLmZ1bmMoKTsKICAgCiAgIGZ1bmN0aW9uIGZ1bmMoKXsKICAgICAgcmV0dXJuICJpZF9zdHJpbmciOwogICB9CiAgICAgCn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnkgewoJdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCk7CgkkRVJST1IoJyMxOiB2YXIgb2JqID0gbmV3IEZBQ1RPUlkoKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7fQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBpbmFkbWlzc2libGUgYXMgbG9uZyBhcyB0aGlzLmFueV9GdW5jdGlvbiBpcyBkZWNsYXJlZCBieSBldmFsIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTEzLmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCBieSBldmFsCiAqLwoKZnVuY3Rpb24gRkFDVE9SWSgpewogICB0aGlzLmlkID0gMDsKICAgICAgCiAgIHRoaXMuaWQgPSBmdW5jKCk7CiAgIAogICBldmFsKCJmdW5jdGlvbiBmdW5jKCl7cmV0dXJuIFwiaWRfc3RyaW5nXCI7fSIpOwogICAgIAp9Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5IHsKCXZhciBvYmogPSBuZXcgRkFDVE9SWSgpOwoJJEVSUk9SKCcjMTogdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCkgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkge30KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBpbmFkbWlzc2libGUgYXMgbG9uZyBhcyB0aGlzLmFueV9GdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIGl0IGlzIGRlY2xhcmVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0E5LmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvcgogKi8KCmZ1bmN0aW9uIEZBQ1RPUlkoKXsKICAgdGhpcy5pZCA9IDA7CiAgIAogICB0aGlzLmlkID0gdGhpcy5mdW5jKCk7CiAgIAogICB0aGlzLmZ1bmMgPSBmdW5jdGlvbiAoKXsKICAgICAgcmV0dXJuIDU7CiAgIH0KICAKfQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCnRyeSB7Cgl2YXIgb2JqID0gbmV3IEZBQ1RPUlkoKTsKCSRFUlJPUignIzE6IHZhciBvYmogPSBuZXcgRkFDVE9SWSgpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0gY2F0Y2ggKGUpIHt9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"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":"LyoqDQogKiBAcGF0aCBjaDEzLzEzLjAvMTNfNC0xN2dzLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0IE1vZGUgLSBTb3VyY2VFbGVtZW50cyBpcyBldmFsdWF0ZWQgYXMgc3RyaWN0IG1vZGUgY29kZSB3aGVuIGEgRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgY29udGFpbmVkIGluIHN0cmljdCBtb2RlIGNvZGUNCiAqIEBvbmx5U3RyaWN0DQogKiBAbmVnYXRpdmUgTm90RWFybHlFcnJvcg0KICovDQoNCiJ1c2Ugc3RyaWN0IjsNCnZhciBfMTNfNF8xN19mdW4gPSBuZXcgRnVuY3Rpb24oJ2V2YWwgPSA0MjsnKTsNCnRocm93IE5vdEVhcmx5RXJyb3I7DQo=","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":"LyoqDQogKiBAcGF0aCBjaDEzLzEzLjAvMTNfNC01Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFNvdXJjZUVsZW1lbnRzIGlzIGV2YWx1YXRlZCBhcyBzdHJpY3QgbW9kZSBjb2RlIHdoZW4gYSBGdW5jdGlvbkRlY2xhcmF0aW9uIGlzIGNvbnRhaW5lZCBpbiBzdHJpY3QgbW9kZSBjb2RlDQogKiBAb25seVN0cmljdA0KICogQG5lZ2F0aXZlIF4oKD8hTm90RWFybHlFcnJvcikuKSokDQogKi8NCg0KInVzZSBzdHJpY3QiOw0KdGhyb3cgTm90RWFybHlFcnJvcjsNCmZ1bmN0aW9uIF8xM18wXzRfNV9mdW4oKSB7IGV2YWwgPSA0MjsgfTsNCg==","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":"LyoqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0xM2dzLmpzDQogKiBAZGVzY3JpcHRpb24gU3RyaWN0TW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiAnYXJndW1lbnRzJyBvY2N1cnMgYXMgdGhlIElkZW50aWZpZXIgb2YgYSBGdW5jdGlvbkRlY2xhcmF0aW9uDQogKiBAb25seVN0cmljdA0KICogQG5lZ2F0aXZlIF4oKD8hTm90RWFybHlFcnJvcikuKSokDQogKi8NCu+7vyJ1c2Ugc3RyaWN0IjsNCnRocm93IE5vdEVhcmx5RXJyb3I7DQpmdW5jdGlvbiBhcmd1bWVudHMoKSB7IH07","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":"LyoqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS0xZ3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiB0aGUgaWRlbnRpZmllciAnZXZhbCcgYXBwZWFycyB3aXRoaW4gYSBGb3JtYWxQYXJhbWV0ZXJMaXN0IG9mIGEgc3RyaWN0IG1vZGUgRnVuY3Rpb25EZWNsYXJhdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBeKCg/IU5vdEVhcmx5RXJyb3IpLikqJA0KICovDQoidXNlIHN0cmljdCI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KZnVuY3Rpb24gXzEzXzFfMV9mdW4oZXZhbCkgeyB9","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":"LyoqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS00Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiB0aGUgaWRlbnRpZmllciAnYXJndW1lbnRzJyBhcHBlYXJzIHdpdGhpbiBhIEZvcm1hbFBhcmFtZXRlckxpc3Qgb2YgYSBzdHJpY3QgbW9kZSBGdW5jdGlvbkV4cHJlc3Npb24NCiAqIEBvbmx5U3RyaWN0DQogKiBAbmVnYXRpdmUgXigoPyFOb3RFYXJseUVycm9yKS4pKiQNCiAqLw0KInVzZSBzdHJpY3QiOw0KdGhyb3cgTm90RWFybHlFcnJvcjsNCnZhciBfMTNfMV80X2Z1biA9IGZ1bmN0aW9uIChhcmd1bWVudHMpIHsgfTs=","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":"LyoqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS01Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gaGFzIHR3byBpZGVudGljYWwgcGFyYW1ldGVycw0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBeKCg/IU5vdEVhcmx5RXJyb3IpLikqJA0KICovDQoidXNlIHN0cmljdCI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KZnVuY3Rpb24gXzEzXzFfNV9mdW4ocGFyYW0sIHBhcmFtKSB7IH0=","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":"LyoqDQogKiBAcGF0aCBjaDEzLzEzLjEvMTMuMS04Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3QgTW9kZSAtIFN5bnRheEVycm9yIGlzIHRocm93biBpZiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBoYXMgdHdvIGlkZW50aWNhbCBwYXJhbWV0ZXJzDQogKiBAb25seVN0cmljdA0KICogQG5lZ2F0aXZlIF4oKD8hTm90RWFybHlFcnJvcikuKSokDQogKi8NCiJ1c2Ugc3RyaWN0IjsNCnRocm93IE5vdEVhcmx5RXJyb3I7DQp2YXIgXzEzXzFfOF9mdW4gPSBmdW5jdGlvbiAocGFyYW0sIHBhcmFtKSB7IH07","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1QzLmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgbnVtYmVyLiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMoKSIKICovCgp2YXIgeDsKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB4ID0gMTsKICAgIHJldHVybiB4Owp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMKdHJ5IHsKCXg9eDsKCSRFUlJPUignIzA6ICJ4PXgiIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0gY2F0Y2ggKGUpIHt9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnl7CiAgICB2YXIgX194PV9fZnVuYygpOwp9IGNhdGNoKGUpewogICAgJEVSUk9SKCcjMTogdmFyIF9feD1fX2Z1bmMoKSBkb2VzIG5vdCBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbi4gQWN0dWFsOiBleGNlcHRpb24gaXMgJytlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9feCAhPT0gMSkgewoJJEVSUk9SKCcjMjogX194ID09PSAxLiBBY3R1YWw6IF9feCA9PT0nK19feCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmICh4ICE9PSAxKSB7CgkkRVJST1IoJyMzOiB4ID09PSAxLiBBY3R1YWw6IHggPT09Jyt4KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1Q0LmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgYm9vbGVhbi4gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiZnVuY3Rpb24gX19mdW5jKCkiCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB2YXIgeCA9IHRydWU7CiAgICByZXR1cm4geDsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjCnRyeSB7Cgl4PXg7CgkkRVJST1IoJyMwOiAieD14IiBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7fQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5ewogICAgdmFyIF9feD1fX2Z1bmMoKQp9IGNhdGNoKGUpewogICAgJEVSUk9SKCcjMTogdmFyIF9feD1fX2Z1bmMoKSBkb2VzIG5vdCBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbi4gQWN0dWFsOiBleGNlcHRpb24gaXMgJytlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKCEoX194KSkgewoJJEVSUk9SKCcjMjogX194ID09PSB0cnVlLiBBY3R1YWw6IF9feCA9PT0nK19feCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCnRyeSB7Cgl4PXg7CgkkRVJST1IoJyMzOiAieD14IiBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7fQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBwb3NzaWJsZSBhcyBsb25nIGFzIHRoaXMuYW55X0Z1bmN0aW9uIGlzIGRlY2xhcmVkIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTExLmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCB3aXRoICJmdW5jdGlvbiBmdW5jKCkiCiAqLwoKZnVuY3Rpb24gRkFDVE9SWSgpewogICB0aGlzLmlkID0gMDsKICAgICAgCiAgIHRoaXMuaWQgPSB0aGlzLmZ1bmMoKTsKICAgCiAgIGZ1bmN0aW9uIGZ1bmMoKXsKICAgICAgcmV0dXJuICJpZF9zdHJpbmciOwogICB9CiAgICAgCn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnkgewoJdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCk7CgkkRVJST1IoJyMxOiB2YXIgb2JqID0gbmV3IEZBQ1RPUlkoKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7fQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBpbmFkbWlzc2libGUgYXMgbG9uZyBhcyB0aGlzLmFueV9GdW5jdGlvbiBpcyBkZWNsYXJlZCBieSBldmFsIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTEzLmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCBieSBldmFsCiAqLwoKZnVuY3Rpb24gRkFDVE9SWSgpewogICB0aGlzLmlkID0gMDsKICAgICAgCiAgIHRoaXMuaWQgPSBmdW5jKCk7CiAgIAogICBldmFsKCJmdW5jdGlvbiBmdW5jKCl7cmV0dXJuIFwiaWRfc3RyaW5nXCI7fSIpOwogICAgIAp9Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5IHsKCXZhciBvYmogPSBuZXcgRkFDVE9SWSgpOwoJJEVSUk9SKCcjMTogdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCkgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkge30KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBpbmFkbWlzc2libGUgYXMgbG9uZyBhcyB0aGlzLmFueV9GdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIGl0IGlzIGRlY2xhcmVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0E5LmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvcgogKi8KCmZ1bmN0aW9uIEZBQ1RPUlkoKXsKICAgdGhpcy5pZCA9IDA7CiAgIAogICB0aGlzLmlkID0gdGhpcy5mdW5jKCk7CiAgIAogICB0aGlzLmZ1bmMgPSBmdW5jdGlvbiAoKXsKICAgICAgcmV0dXJuIDU7CiAgIH0KICAKfQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCnRyeSB7Cgl2YXIgb2JqID0gbmV3IEZBQ1RPUlkoKTsKCSRFUlJPUignIzE6IHZhciBvYmogPSBuZXcgRkFDVE9SWSgpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0gY2F0Y2ggKGUpIHt9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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
diff --git a/website/json/ch14.json b/website/json/ch14.json
index 80297e9ee..575c8fb69 100644
--- a/website/json/ch14.json
+++ b/website/json/ch14.json
@@ -1 +1 @@
-{"testsCollection":{"name":"Chapter - ch14","numTests":"24","tests":[{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gbXVzdCBiZSBsb2NhbGVkIGluIGEgcmVhY2hlYWJsZSBmcmFnbWVudCBvZiB0aGUgcHJvZ3JhbQogKgogKiBAcGF0aCBjaDE0L1MxNF9BMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aGluIGFuICJpZiIgRXhwcmVzc2lvbgogKi8KCnZhciBUSEVSRSA9ICJJJ20gdGhlcmUiOwp2YXIgSEVSRSA9ICJJJ20gaGVyZSI7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICggX19mdW5jICE9PSB1bmRlZmluZWQpIHsKCSRFUlJPUignIzE6IF9fZnVuYyA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6ICBfX2Z1bmMgPT09JysgX19mdW5jICApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKaWYgKHRydWUpewogICAgdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCl7cmV0dXJuIEhFUkU7fTsKfSBlbHNlIHsKICAgIHZhciBfX2Z1bmMgPSBmdW5jdGlvbiAoKXtyZXR1cm4gVEhFUkU7fTsKfTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYygpICE9PSBIRVJFKSB7CgkkRVJST1IoJyMyOiBfX2Z1bmMoKSA9PT0gSEVSRS4gQWN0dWFsOiAgX19mdW5jKCkgPT09JysgX19mdW5jKCkgICk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"FunctionExpression must be localed in a reacheable fragment of the program","description":"Declaring a function within an \"if\" Expression","path":"TestCases/ch14/S14_A1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIGNhbm5vdCBiZSBsb2NhbGVkIGluc2lkZSBhbiBFeHByZXNzaW9uCiAqCiAqIEBwYXRoIGNoMTQvUzE0X0EyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoaW4gYW4gImlmIiBFeHByZXNzaW9uCiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIGYgIT09ICd1bmRlZmluZWQnKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgZiA9PT0gXCd1bmRlZmluZWRcJy4gQWN0dWFsOiAgdHlwZW9mIGYgPT09JysgdHlwZW9mIGYgICk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChmdW5jdGlvbiBmKGFyZyl7CglpZiAoYXJnPT09MCkKCSAgIHJldHVybiAxOwoJZWxzZQoJICAgcmV0dXJuIGYoYXJnLTEpKmFyZzsKfSgzKSE9PTYpIHsKCSRFUlJPUignIzI6IEZ1bmN0aW9uRGVjbGFyYXRpb24gY2Fubm90IGJlIGxvY2FsZWQgaW5zaWRlIGFuIEV4cHJlc3Npb24nKTsKfTsKLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"FunctionDeclaration cannot be localed inside an Expression","description":"Declaring a function within an \"if\" Expression","path":"TestCases/ch14/S14_A2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBHbG9iYWwgRnVuY3Rpb25EZWNsYXJhdGlvbiBjYW5ub3QgYmUgZGVmaW5lZCB3aXRoaW4gdGhlIGJvZHkgb2YgYW5vdGhlciBGdW5jdGlvbkRlY2xhcmF0aW9uCiAqCiAqIEBwYXRoIGNoMTQvUzE0X0EzLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoaW4gdGhlIGJvZHkgb2YgYW5vdGhlciBmdW5jdGlvbgogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2Z1bmMgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogIHR5cGVvZiBfX2Z1bmMgPT09JysgdHlwZW9mIF9fZnVuYyAgKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHR5cGVvZiBfX2d1bmMgIT09ICJ1bmRlZmluZWQiKSB7CgkkRVJST1IoJyMyOiB0eXBlb2YgX19ndW5jID09PSAidW5kZWZpbmVkIi4gQWN0dWFsOiAgdHlwZW9mIF9fZ3VuYyA9PT0nKyB0eXBlb2YgX19ndW5jICApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICBmdW5jdGlvbiBfX2d1bmMoKXtyZXR1cm4gdHJ1ZX07Cn0KCg==","commentary":"Global FunctionDeclaration cannot be defined within the body of another FunctionDeclaration","description":"Declaring a function within the body of another function","path":"TestCases/ch14/S14_A3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmVyIHdpdGhpbiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gY2FuIGJlIHdyaXR0ZW4gaW4gYm90aCBsZXR0ZXJzIGFuZCB1bmljb2RlCiAqCiAqIEBwYXRoIGNoMTQvUzE0X0E1X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX1x1MDA2Nlx1MDA3NVx1MDA2ZVx1MDA2Mygpe3JldHVybiAiYm90aCJ9IgogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygpICE9PSAiYm90aCIpIHsKCSRFUlJPUignIzE6IF9fZnVuYygpID09PSAiYm90aCIuIEFjdHVhbDogIF9fZnVuYygpID09PScrIF9fZnVuYygpICApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuICJhc2NpaSJ9OwpmdW5jdGlvbiBcdTAwNWZcdTAwNWZcdTAwNjZcdTAwNzVcdTAwNmVcdTAwNjMoKXtyZXR1cm4gInVuaWNvZGUifTsvL19fZnVuYyBpbiB1bmljb2RlCmZ1bmN0aW9uIF9fXHUwMDY2XHUwMDc1XHUwMDZlXHUwMDYzKCl7cmV0dXJuICJib3RoIn07Ly9fX2Z1bmMgaW4gdW5pY29kZQoK","commentary":"The Identifer within a FunctionDeclaration can be written in both letters and unicode","description":"Declaring a function with \"function __\\u0066\\u0075\\u006e\\u0063(){return \"both\"}\"","path":"TestCases/ch14/S14_A5_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmVyIHdpdGhpbiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gY2FuIGJlIHdyaXR0ZW4gaW4gYm90aCBsZXR0ZXJzIGFuZCB1bmljb2RlCiAqCiAqIEBwYXRoIGNoMTQvUzE0X0E1X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBcdTAwNWZcdTAwNWZcdTAwNjZcdTAwNzVcdTAwNmVcdTAwNjMoKXtyZXR1cm4gInVuaWNvZGUifSIKICovCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoKSAhPT0gInVuaWNvZGUiKSB7CgkkRVJST1IoJyMxOiBfX2Z1bmMoKSA9PT0gInVuaWNvZGUiLiBBY3R1YWw6ICBfX2Z1bmMoKSA9PT0nKyBfX2Z1bmMoKSAgKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIF9fZnVuYygpe3JldHVybiAiYXNjaWkifTsKZnVuY3Rpb24gXHUwMDVmXHUwMDVmXHUwMDY2XHUwMDc1XHUwMDZlXHUwMDYzKCl7cmV0dXJuICJ1bmljb2RlIn07Ly9fX2Z1bmMgaW4gdW5pY29kZQoK","commentary":"The Identifer within a FunctionDeclaration can be written in both letters and unicode","description":"Declaring a function with \"function \\u005f\\u005f\\u0066\\u0075\\u006e\\u0063(){return \"unicode\"}\"","path":"TestCases/ch14/S14_A5_T2.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMS1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIGNvcnJlY3QgdXNhZ2UNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICd1c2Ugc3RyaWN0JzsNCiAgICAgcmV0dXJuKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"'use strict' directive - correct usage","noStrict":"","path":"TestCases/ch14/14.1/14.1-1-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTAtcy5qcw0KICogQGRlc2NyaXB0aW9uIG90aGVyIGRpcmVjdGl2ZXMgLSBtYXkgZm9sbG93ICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICAidXNlIHN0cmljdCI7DQogICAgICJib2d1cyBkaXJlY3RpdmUiOw0KICAgICByZXR1cm4gKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"other directives - may follow 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-10-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTEtcy5qcw0KICogQGRlc2NyaXB0aW9uIGNvbW1lbnRzIG1heSBwcmVjZWVkICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICAvLyBjb21tZW50DQogICAgIC8qIGNvbW1lbnQgKi8gInVzZSBzdHJpY3QiOw0KDQogICByZXR1cm4odGhpcyA9PT0gdW5kZWZpbmVkKTsNCg0KICB9DQoNCiAgcmV0dXJuIGZvby5jYWxsKHVuZGVmaW5lZCk7DQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"comments may preceed 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-11-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTItcy5qcw0KICogQGRlc2NyaXB0aW9uIGNvbW1lbnRzIG1heSBmb2xsb3cgJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZQ0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgICJ1c2Ugc3RyaWN0IjsgICAgLyogY29tbWVudCAqLyAgIC8vIGNvbW1lbnQNCg0KICAgICByZXR1cm4gKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"comments may follow 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-12-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTMtcy5qcw0KICogQGRlc2NyaXB0aW9uIHNlbWljb2xvbiBpbnNlcnRpb24gd29ya3MgZm9yJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZQ0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgInVzZSBzdHJpY3QiDQogICAgIHJldHVybiAodGhpcyA9PT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"semicolon insertion works for'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-13-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTQtcy5qcw0KICogQGRlc2NyaXB0aW9uIHNlbWljb2xvbiBpbnNlcnRpb24gbWF5IGNvbWUgYmVmb3JlICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICJhbm90aGVyIGRpcmVjdGl2ZSINCiAgICAidXNlIHN0cmljdCIgOw0KICAgIHJldHVybiAodGhpcyA9PT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"semicolon insertion may come before 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-14-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTUtcy5qcw0KICogQGRlc2NyaXB0aW9uIGJsYW5rIGxpbmVzIG1heSBjb21lIGJlZm9yZSAndXNlIHN0cmljdCcgZGlyZWN0aXZlDQogKiBAbm9TdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCg0KDQoNCg0KDQoNCiAgICAidXNlIHN0cmljdCIgOw0KICAgIHJldHVybiAodGhpcyA9PT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"blank lines may come before 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-15-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTYtcy5qcw0KICogQGRlc2NyaXB0aW9uICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUgLSBub3QgcmVjb2duaXplZCBpZiBpdCBmb2xsb3cgYW4gZW1wdHkgc3RhdGVtZW50DQogKiBAbm9TdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCiAgICA7ICd1c2Ugc3RyaWN0JzsNCiAgICAgcmV0dXJuICh0aGlzICE9PSB1bmRlZmluZWQpOw0KICB9DQoNCiAgcmV0dXJuIGZvby5jYWxsKHVuZGVmaW5lZCk7DQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"'use strict' directive - not recognized if it follow an empty statement","noStrict":"","path":"TestCases/ch14/14.1/14.1-16-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTctcy5qcw0KICogQGRlc2NyaXB0aW9uICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUgLSBub3QgcmVjb2duaXplZCBpZiBpdCBmb2xsb3cgc29tZSBvdGhlciBzdGF0bWVudCBlbXB0eSBzdGF0ZW1lbnQNCiAqIEBub1N0cmljdA0KICovDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCiAgICB2YXIgeDsNCiAgICAndXNlIHN0cmljdCc7DQogICAgcmV0dXJuICh0aGlzICE9PSB1bmRlZmluZWQpOw0KICB9DQoNCiAgcmV0dXJuIGZvby5jYWxsKHVuZGVmaW5lZCk7DQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"'use strict' directive - not recognized if it follow some other statment empty statement","noStrict":"","path":"TestCases/ch14/14.1/14.1-17-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMi1zLmpzDQogKiBAZGVzY3JpcHRpb24gInVzZSBzdHJpY3QiIGRpcmVjdGl2ZSAtIGNvcnJlY3QgdXNhZ2UgZG91YmxlIHF1b3Rlcw0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgInVzZSBzdHJpY3QiOw0KICAgICByZXR1cm4gKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"\"use strict\" directive - correct usage double quotes","noStrict":"","path":"TestCases/ch14/14.1/14.1-2-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMy1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIGl0IGNvbnRhaW5zIGV4dHJhIHdoaXRlc3BhY2UNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICcgIHVzZSAgICBzdHJpY3QgICAnOw0KICAgICByZXR1cm4gKHRoaXMgIT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"'use strict' directive - not recognized if it contains extra whitespace","noStrict":"","path":"TestCases/ch14/14.1/14.1-3-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtNC1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIGNvbnRhaW5zIExpbmUgQ29udGludWF0aW9uDQogKiBAbm9TdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCiAgICAndXNlIHN0clwNCmljdCc7DQogICAgIHJldHVybiAodGhpcyAhPT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"'use strict' directive - not recognized if contains Line Continuation","noStrict":"","path":"TestCases/ch14/14.1/14.1-4-s.js"},{"code":"LyoqDQogKiBAcGF0aCBjaDE0LzE0LjEvMTQuMS00Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gYSBVc2UgU3RyaWN0IERpcmVjdGl2ZSBmb2xsb3dlZCBieSBhIHN0cmljdCBtb2RlIHZpb2xhdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBeKCg/IU5vdEVhcmx5RXJyb3IpLikqJA0KICovDQoidXNlIHN0cmljdCI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KZXZhbCA9IDQyOw==","commentary":"","description":"StrictMode - a Use Strict Directive followed by a strict mode violation","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch14/14.1/14.1-4gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtNS1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIGNvbnRhaW5zIGEgRXNjYXBlU2VxdWVuY2UNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICd1c2VcdTAwMjBzdHJpY3QnOw0KICAgICByZXR1cm4odGhpcyAhPT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"'use strict' directive - not recognized if contains a EscapeSequence","noStrict":"","path":"TestCases/ch14/14.1/14.1-5-s.js"},{"code":"LyoqDQogKiBAcGF0aCBjaDE0LzE0LjEvMTQuMS01Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gYSBVc2UgU3RyaWN0IERpcmVjdGl2ZSBlbWJlZGRlZCBpbiBhIGRpcmVjdGl2ZSBwcm9sb2d1ZSBmb2xsb3dlZCBieSBhIHN0cmljdCBtb2RlIHZpb2xhdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBeKCg/IU5vdEVhcmx5RXJyb3IpLikqJA0KICovDQoiYSI7DQoidXNlIHN0cmljdCI7DQoiYyI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KZXZhbCA9IDQyOw==","commentary":"","description":"StrictMode - a Use Strict Directive embedded in a directive prologue followed by a strict mode violation","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch14/14.1/14.1-5gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtNi1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIGNvbnRhaW5zIGEgPFRBQj4gaW5zdGVhZCBvZiBhIHNwYWNlDQogKiBAbm9TdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCiAgICAndXNlCXN0cmljdCc7DQogICAgIHJldHVybiAodGhpcyAhPT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"'use strict' directive - not recognized if contains a <TAB> instead of a space","noStrict":"","path":"TestCases/ch14/14.1/14.1-6-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtNy1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIHVwcGVyIGNhc2UNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICdVc2UgU3RyaWN0JzsNCiAgICAgcmV0dXJuICh0aGlzICE9PSB1bmRlZmluZWQpOw0KICB9DQoNCiAgcmV0dXJuIGZvby5jYWxsKHVuZGVmaW5lZCk7DQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"'use strict' directive - not recognized if upper case","noStrict":"","path":"TestCases/ch14/14.1/14.1-7-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtOC1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG1heSBmb2xsb3cgb3RoZXIgZGlyZWN0aXZlcw0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgICJib2d1cyBkaXJlY3RpdmUiOw0KICAgICAidXNlIHN0cmljdCI7DQogICAgIHJldHVybiAodGhpcyA9PT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"'use strict' directive - may follow other directives","noStrict":"","path":"TestCases/ch14/14.1/14.1-8-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtOS1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG1heSBvY2N1ciBtdWx0aXBsZSB0aW1lcw0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgICd1c2Ugc3RyaWN0JzsNCiAgICAgInVzZSBzdHJpY3QiOw0KICAgICByZXR1cm4gKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"'use strict' directive - may occur multiple times","noStrict":"","path":"TestCases/ch14/14.1/14.1-9-s.js"}]}} \ No newline at end of file
+{"testsCollection":{"name":"Chapter - ch14","numTests":"24","tests":[{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gbXVzdCBiZSBsb2NhbGVkIGluIGEgcmVhY2hlYWJsZSBmcmFnbWVudCBvZiB0aGUgcHJvZ3JhbQogKgogKiBAcGF0aCBjaDE0LzE0LjAvUzE0X0ExLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoaW4gYW4gImlmIiBFeHByZXNzaW9uCiAqLwoKdmFyIFRIRVJFID0gIkknbSB0aGVyZSI7CnZhciBIRVJFID0gIkknbSBoZXJlIjsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKCBfX2Z1bmMgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19mdW5jID09PSB1bmRlZmluZWQuIEFjdHVhbDogIF9fZnVuYyA9PT0nKyBfX2Z1bmMgICk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgppZiAodHJ1ZSl7CiAgICB2YXIgX19mdW5jID0gZnVuY3Rpb24oKXtyZXR1cm4gSEVSRTt9Owp9IGVsc2UgewogICAgdmFyIF9fZnVuYyA9IGZ1bmN0aW9uICgpe3JldHVybiBUSEVSRTt9Owp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCkgIT09IEhFUkUpIHsKCSRFUlJPUignIzI6IF9fZnVuYygpID09PSBIRVJFLiBBY3R1YWw6ICBfX2Z1bmMoKSA9PT0nKyBfX2Z1bmMoKSAgKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"FunctionExpression must be localed in a reacheable fragment of the program","description":"Declaring a function within an \"if\" Expression","path":"TestCases/ch14/14.0/S14_A1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIGNhbm5vdCBiZSBsb2NhbGVkIGluc2lkZSBhbiBFeHByZXNzaW9uCiAqCiAqIEBwYXRoIGNoMTQvMTQuMC9TMTRfQTIuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGhpbiBhbiAiaWYiIEV4cHJlc3Npb24KICovCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgZiAhPT0gJ3VuZGVmaW5lZCcpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBmID09PSBcJ3VuZGVmaW5lZFwnLiBBY3R1YWw6ICB0eXBlb2YgZiA9PT0nKyB0eXBlb2YgZiAgKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKGZ1bmN0aW9uIGYoYXJnKXsKCWlmIChhcmc9PT0wKQoJICAgcmV0dXJuIDE7CgllbHNlCgkgICByZXR1cm4gZihhcmctMSkqYXJnOwp9KDMpIT09NikgewoJJEVSUk9SKCcjMjogRnVuY3Rpb25EZWNsYXJhdGlvbiBjYW5ub3QgYmUgbG9jYWxlZCBpbnNpZGUgYW4gRXhwcmVzc2lvbicpOwp9OwovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"FunctionDeclaration cannot be localed inside an Expression","description":"Declaring a function within an \"if\" Expression","path":"TestCases/ch14/14.0/S14_A2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBHbG9iYWwgRnVuY3Rpb25EZWNsYXJhdGlvbiBjYW5ub3QgYmUgZGVmaW5lZCB3aXRoaW4gdGhlIGJvZHkgb2YgYW5vdGhlciBGdW5jdGlvbkRlY2xhcmF0aW9uCiAqCiAqIEBwYXRoIGNoMTQvMTQuMC9TMTRfQTMuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGhpbiB0aGUgYm9keSBvZiBhbm90aGVyIGZ1bmN0aW9uCiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZnVuYyAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiAgdHlwZW9mIF9fZnVuYyA9PT0nKyB0eXBlb2YgX19mdW5jICApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAodHlwZW9mIF9fZ3VuYyAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzI6IHR5cGVvZiBfX2d1bmMgPT09ICJ1bmRlZmluZWQiLiBBY3R1YWw6ICB0eXBlb2YgX19ndW5jID09PScrIHR5cGVvZiBfX2d1bmMgICk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2Z1bmMoKXsKICAgIGZ1bmN0aW9uIF9fZ3VuYygpe3JldHVybiB0cnVlfTsKfQoK","commentary":"Global FunctionDeclaration cannot be defined within the body of another FunctionDeclaration","description":"Declaring a function within the body of another function","path":"TestCases/ch14/14.0/S14_A3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmVyIHdpdGhpbiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gY2FuIGJlIHdyaXR0ZW4gaW4gYm90aCBsZXR0ZXJzIGFuZCB1bmljb2RlCiAqCiAqIEBwYXRoIGNoMTQvMTQuMC9TMTRfQTVfVDEuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggImZ1bmN0aW9uIF9fXHUwMDY2XHUwMDc1XHUwMDZlXHUwMDYzKCl7cmV0dXJuICJib3RoIn0iCiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKCkgIT09ICJib3RoIikgewoJJEVSUk9SKCcjMTogX19mdW5jKCkgPT09ICJib3RoIi4gQWN0dWFsOiAgX19mdW5jKCkgPT09JysgX19mdW5jKCkgICk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gImFzY2lpIn07CmZ1bmN0aW9uIFx1MDA1Zlx1MDA1Zlx1MDA2Nlx1MDA3NVx1MDA2ZVx1MDA2Mygpe3JldHVybiAidW5pY29kZSJ9Oy8vX19mdW5jIGluIHVuaWNvZGUKZnVuY3Rpb24gX19cdTAwNjZcdTAwNzVcdTAwNmVcdTAwNjMoKXtyZXR1cm4gImJvdGgifTsvL19fZnVuYyBpbiB1bmljb2RlCgo=","commentary":"The Identifer within a FunctionDeclaration can be written in both letters and unicode","description":"Declaring a function with \"function __\\u0066\\u0075\\u006e\\u0063(){return \"both\"}\"","path":"TestCases/ch14/14.0/S14_A5_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmVyIHdpdGhpbiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gY2FuIGJlIHdyaXR0ZW4gaW4gYm90aCBsZXR0ZXJzIGFuZCB1bmljb2RlCiAqCiAqIEBwYXRoIGNoMTQvMTQuMC9TMTRfQTVfVDIuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggImZ1bmN0aW9uIFx1MDA1Zlx1MDA1Zlx1MDA2Nlx1MDA3NVx1MDA2ZVx1MDA2Mygpe3JldHVybiAidW5pY29kZSJ9IgogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygpICE9PSAidW5pY29kZSIpIHsKCSRFUlJPUignIzE6IF9fZnVuYygpID09PSAidW5pY29kZSIuIEFjdHVhbDogIF9fZnVuYygpID09PScrIF9fZnVuYygpICApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuICJhc2NpaSJ9OwpmdW5jdGlvbiBcdTAwNWZcdTAwNWZcdTAwNjZcdTAwNzVcdTAwNmVcdTAwNjMoKXtyZXR1cm4gInVuaWNvZGUifTsvL19fZnVuYyBpbiB1bmljb2RlCgo=","commentary":"The Identifer within a FunctionDeclaration can be written in both letters and unicode","description":"Declaring a function with \"function \\u005f\\u005f\\u0066\\u0075\\u006e\\u0063(){return \"unicode\"}\"","path":"TestCases/ch14/14.0/S14_A5_T2.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMS1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIGNvcnJlY3QgdXNhZ2UNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICd1c2Ugc3RyaWN0JzsNCiAgICAgcmV0dXJuKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"'use strict' directive - correct usage","noStrict":"","path":"TestCases/ch14/14.1/14.1-1-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTAtcy5qcw0KICogQGRlc2NyaXB0aW9uIG90aGVyIGRpcmVjdGl2ZXMgLSBtYXkgZm9sbG93ICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICAidXNlIHN0cmljdCI7DQogICAgICJib2d1cyBkaXJlY3RpdmUiOw0KICAgICByZXR1cm4gKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"other directives - may follow 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-10-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTEtcy5qcw0KICogQGRlc2NyaXB0aW9uIGNvbW1lbnRzIG1heSBwcmVjZWVkICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICAvLyBjb21tZW50DQogICAgIC8qIGNvbW1lbnQgKi8gInVzZSBzdHJpY3QiOw0KDQogICByZXR1cm4odGhpcyA9PT0gdW5kZWZpbmVkKTsNCg0KICB9DQoNCiAgcmV0dXJuIGZvby5jYWxsKHVuZGVmaW5lZCk7DQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"comments may preceed 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-11-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTItcy5qcw0KICogQGRlc2NyaXB0aW9uIGNvbW1lbnRzIG1heSBmb2xsb3cgJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZQ0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgICJ1c2Ugc3RyaWN0IjsgICAgLyogY29tbWVudCAqLyAgIC8vIGNvbW1lbnQNCg0KICAgICByZXR1cm4gKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"comments may follow 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-12-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTMtcy5qcw0KICogQGRlc2NyaXB0aW9uIHNlbWljb2xvbiBpbnNlcnRpb24gd29ya3MgZm9yJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZQ0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgInVzZSBzdHJpY3QiDQogICAgIHJldHVybiAodGhpcyA9PT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"semicolon insertion works for'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-13-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTQtcy5qcw0KICogQGRlc2NyaXB0aW9uIHNlbWljb2xvbiBpbnNlcnRpb24gbWF5IGNvbWUgYmVmb3JlICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICJhbm90aGVyIGRpcmVjdGl2ZSINCiAgICAidXNlIHN0cmljdCIgOw0KICAgIHJldHVybiAodGhpcyA9PT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"semicolon insertion may come before 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-14-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTUtcy5qcw0KICogQGRlc2NyaXB0aW9uIGJsYW5rIGxpbmVzIG1heSBjb21lIGJlZm9yZSAndXNlIHN0cmljdCcgZGlyZWN0aXZlDQogKiBAbm9TdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCg0KDQoNCg0KDQoNCiAgICAidXNlIHN0cmljdCIgOw0KICAgIHJldHVybiAodGhpcyA9PT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"blank lines may come before 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-15-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTYtcy5qcw0KICogQGRlc2NyaXB0aW9uICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUgLSBub3QgcmVjb2duaXplZCBpZiBpdCBmb2xsb3cgYW4gZW1wdHkgc3RhdGVtZW50DQogKiBAbm9TdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCiAgICA7ICd1c2Ugc3RyaWN0JzsNCiAgICAgcmV0dXJuICh0aGlzICE9PSB1bmRlZmluZWQpOw0KICB9DQoNCiAgcmV0dXJuIGZvby5jYWxsKHVuZGVmaW5lZCk7DQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"'use strict' directive - not recognized if it follow an empty statement","noStrict":"","path":"TestCases/ch14/14.1/14.1-16-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTctcy5qcw0KICogQGRlc2NyaXB0aW9uICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUgLSBub3QgcmVjb2duaXplZCBpZiBpdCBmb2xsb3cgc29tZSBvdGhlciBzdGF0bWVudCBlbXB0eSBzdGF0ZW1lbnQNCiAqIEBub1N0cmljdA0KICovDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCiAgICB2YXIgeDsNCiAgICAndXNlIHN0cmljdCc7DQogICAgcmV0dXJuICh0aGlzICE9PSB1bmRlZmluZWQpOw0KICB9DQoNCiAgcmV0dXJuIGZvby5jYWxsKHVuZGVmaW5lZCk7DQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"'use strict' directive - not recognized if it follow some other statment empty statement","noStrict":"","path":"TestCases/ch14/14.1/14.1-17-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMi1zLmpzDQogKiBAZGVzY3JpcHRpb24gInVzZSBzdHJpY3QiIGRpcmVjdGl2ZSAtIGNvcnJlY3QgdXNhZ2UgZG91YmxlIHF1b3Rlcw0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgInVzZSBzdHJpY3QiOw0KICAgICByZXR1cm4gKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"\"use strict\" directive - correct usage double quotes","noStrict":"","path":"TestCases/ch14/14.1/14.1-2-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMy1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIGl0IGNvbnRhaW5zIGV4dHJhIHdoaXRlc3BhY2UNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICcgIHVzZSAgICBzdHJpY3QgICAnOw0KICAgICByZXR1cm4gKHRoaXMgIT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"'use strict' directive - not recognized if it contains extra whitespace","noStrict":"","path":"TestCases/ch14/14.1/14.1-3-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtNC1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIGNvbnRhaW5zIExpbmUgQ29udGludWF0aW9uDQogKiBAbm9TdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCiAgICAndXNlIHN0clwNCmljdCc7DQogICAgIHJldHVybiAodGhpcyAhPT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"'use strict' directive - not recognized if contains Line Continuation","noStrict":"","path":"TestCases/ch14/14.1/14.1-4-s.js"},{"code":"LyoqDQogKiBAcGF0aCBjaDE0LzE0LjEvMTQuMS00Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gYSBVc2UgU3RyaWN0IERpcmVjdGl2ZSBmb2xsb3dlZCBieSBhIHN0cmljdCBtb2RlIHZpb2xhdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBeKCg/IU5vdEVhcmx5RXJyb3IpLikqJA0KICovDQoidXNlIHN0cmljdCI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KZXZhbCA9IDQyOw==","commentary":"","description":"StrictMode - a Use Strict Directive followed by a strict mode violation","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch14/14.1/14.1-4gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtNS1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIGNvbnRhaW5zIGEgRXNjYXBlU2VxdWVuY2UNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICd1c2VcdTAwMjBzdHJpY3QnOw0KICAgICByZXR1cm4odGhpcyAhPT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"'use strict' directive - not recognized if contains a EscapeSequence","noStrict":"","path":"TestCases/ch14/14.1/14.1-5-s.js"},{"code":"LyoqDQogKiBAcGF0aCBjaDE0LzE0LjEvMTQuMS01Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gYSBVc2UgU3RyaWN0IERpcmVjdGl2ZSBlbWJlZGRlZCBpbiBhIGRpcmVjdGl2ZSBwcm9sb2d1ZSBmb2xsb3dlZCBieSBhIHN0cmljdCBtb2RlIHZpb2xhdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBeKCg/IU5vdEVhcmx5RXJyb3IpLikqJA0KICovDQoiYSI7DQoidXNlIHN0cmljdCI7DQoiYyI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KZXZhbCA9IDQyOw==","commentary":"","description":"StrictMode - a Use Strict Directive embedded in a directive prologue followed by a strict mode violation","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch14/14.1/14.1-5gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtNi1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIGNvbnRhaW5zIGEgPFRBQj4gaW5zdGVhZCBvZiBhIHNwYWNlDQogKiBAbm9TdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCiAgICAndXNlCXN0cmljdCc7DQogICAgIHJldHVybiAodGhpcyAhPT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"'use strict' directive - not recognized if contains a <TAB> instead of a space","noStrict":"","path":"TestCases/ch14/14.1/14.1-6-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtNy1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIHVwcGVyIGNhc2UNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICdVc2UgU3RyaWN0JzsNCiAgICAgcmV0dXJuICh0aGlzICE9PSB1bmRlZmluZWQpOw0KICB9DQoNCiAgcmV0dXJuIGZvby5jYWxsKHVuZGVmaW5lZCk7DQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"'use strict' directive - not recognized if upper case","noStrict":"","path":"TestCases/ch14/14.1/14.1-7-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtOC1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG1heSBmb2xsb3cgb3RoZXIgZGlyZWN0aXZlcw0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgICJib2d1cyBkaXJlY3RpdmUiOw0KICAgICAidXNlIHN0cmljdCI7DQogICAgIHJldHVybiAodGhpcyA9PT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"'use strict' directive - may follow other directives","noStrict":"","path":"TestCases/ch14/14.1/14.1-8-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtOS1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG1heSBvY2N1ciBtdWx0aXBsZSB0aW1lcw0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgICd1c2Ugc3RyaWN0JzsNCiAgICAgInVzZSBzdHJpY3QiOw0KICAgICByZXR1cm4gKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"'use strict' directive - may occur multiple times","noStrict":"","path":"TestCases/ch14/14.1/14.1-9-s.js"}]}} \ No newline at end of file
diff --git a/website/json/default.json b/website/json/default.json
index ceb631d04..4be93b277 100644
--- a/website/json/default.json
+++ b/website/json/default.json
@@ -1 +1 @@
-{"date":"2012-01-25","numTests":11181,"testSuite":["json/ch07.json","json/ch08.json","json/ch09.json","json/ch10.json","json/ch11.json","json/ch12.json","json/ch13.json","json/ch14.json","json/ch15.json"],"version":"ES5.1"} \ No newline at end of file
+{"date":"2012-02-03","numTests":11181,"testSuite":["json/ch07.json","json/ch08.json","json/ch09.json","json/ch10.json","json/ch11.json","json/ch12.json","json/ch13.json","json/ch14.json","json/ch15.json"],"version":"ES5.1"} \ No newline at end of file
diff --git a/website/json/testcases_bestPractice.json b/website/json/testcases_bestPractice.json
index 8067093fd..6f31f563b 100644
--- a/website/json/testcases_bestPractice.json
+++ b/website/json/testcases_bestPractice.json
@@ -1 +1 @@
-{"date":"2012-01-25","numTests":13,"testSuite":["json/bestPractice.json"],"version":"ES5.1"} \ No newline at end of file
+{"date":"2012-02-03","numTests":13,"testSuite":["json/bestPractice.json"],"version":"ES5.1"} \ No newline at end of file
diff --git a/website/json/testcases_ch07.json b/website/json/testcases_ch07.json
index 78a20944a..3762e055a 100644
--- a/website/json/testcases_ch07.json
+++ b/website/json/testcases_ch07.json
@@ -1 +1 @@
-{"date":"2012-01-25","numTests":716,"testSuite":["json/ch07.json"],"version":"ES5.1"} \ No newline at end of file
+{"date":"2012-02-03","numTests":716,"testSuite":["json/ch07.json"],"version":"ES5.1"} \ No newline at end of file
diff --git a/website/json/testcases_ch08.json b/website/json/testcases_ch08.json
index fc9f13faf..d05f7388e 100644
--- a/website/json/testcases_ch08.json
+++ b/website/json/testcases_ch08.json
@@ -1 +1 @@
-{"date":"2012-01-25","numTests":124,"testSuite":["json/ch08.json"],"version":"ES5.1"} \ No newline at end of file
+{"date":"2012-02-03","numTests":124,"testSuite":["json/ch08.json"],"version":"ES5.1"} \ No newline at end of file
diff --git a/website/json/testcases_ch09.json b/website/json/testcases_ch09.json
index b5ac4056f..8ecef4c07 100644
--- a/website/json/testcases_ch09.json
+++ b/website/json/testcases_ch09.json
@@ -1 +1 @@
-{"date":"2012-01-25","numTests":128,"testSuite":["json/ch09.json"],"version":"ES5.1"} \ No newline at end of file
+{"date":"2012-02-03","numTests":128,"testSuite":["json/ch09.json"],"version":"ES5.1"} \ No newline at end of file
diff --git a/website/json/testcases_ch10.json b/website/json/testcases_ch10.json
index fc84408e3..af853640b 100644
--- a/website/json/testcases_ch10.json
+++ b/website/json/testcases_ch10.json
@@ -1 +1 @@
-{"date":"2012-01-25","numTests":184,"testSuite":["json/ch10.json"],"version":"ES5.1"} \ No newline at end of file
+{"date":"2012-02-03","numTests":184,"testSuite":["json/ch10.json"],"version":"ES5.1"} \ No newline at end of file
diff --git a/website/json/testcases_ch11.json b/website/json/testcases_ch11.json
index 1341029f6..8ad77e944 100644
--- a/website/json/testcases_ch11.json
+++ b/website/json/testcases_ch11.json
@@ -1 +1 @@
-{"date":"2012-01-25","numTests":1310,"testSuite":["json/ch11.json"],"version":"ES5.1"} \ No newline at end of file
+{"date":"2012-02-03","numTests":1310,"testSuite":["json/ch11.json"],"version":"ES5.1"} \ No newline at end of file
diff --git a/website/json/testcases_ch12.json b/website/json/testcases_ch12.json
index dec120575..d8ff29d3a 100644
--- a/website/json/testcases_ch12.json
+++ b/website/json/testcases_ch12.json
@@ -1 +1 @@
-{"date":"2012-01-25","numTests":525,"testSuite":["json/ch12.json"],"version":"ES5.1"} \ No newline at end of file
+{"date":"2012-02-03","numTests":525,"testSuite":["json/ch12.json"],"version":"ES5.1"} \ No newline at end of file
diff --git a/website/json/testcases_ch13.json b/website/json/testcases_ch13.json
index 7af9dd594..c9eefe35d 100644
--- a/website/json/testcases_ch13.json
+++ b/website/json/testcases_ch13.json
@@ -1 +1 @@
-{"date":"2012-01-25","numTests":200,"testSuite":["json/ch13.json"],"version":"ES5.1"} \ No newline at end of file
+{"date":"2012-02-03","numTests":200,"testSuite":["json/ch13.json"],"version":"ES5.1"} \ No newline at end of file
diff --git a/website/json/testcases_ch14.json b/website/json/testcases_ch14.json
index a05d18bc2..03ba855cc 100644
--- a/website/json/testcases_ch14.json
+++ b/website/json/testcases_ch14.json
@@ -1 +1 @@
-{"date":"2012-01-25","numTests":24,"testSuite":["json/ch14.json"],"version":"ES5.1"} \ No newline at end of file
+{"date":"2012-02-03","numTests":24,"testSuite":["json/ch14.json"],"version":"ES5.1"} \ No newline at end of file
diff --git a/website/json/testcases_ch15.json b/website/json/testcases_ch15.json
index 1ef3d5f60..72919bc59 100644
--- a/website/json/testcases_ch15.json
+++ b/website/json/testcases_ch15.json
@@ -1 +1 @@
-{"date":"2012-01-25","numTests":7970,"testSuite":["json/ch15.json"],"version":"ES5.1"} \ No newline at end of file
+{"date":"2012-02-03","numTests":7970,"testSuite":["json/ch15.json"],"version":"ES5.1"} \ No newline at end of file
diff --git a/website/json/testcases_intl402.json b/website/json/testcases_intl402.json
index 4eabfa45f..2e656996e 100644
--- a/website/json/testcases_intl402.json
+++ b/website/json/testcases_intl402.json
@@ -1 +1 @@
-{"date":"2012-01-25","numTests":1,"testSuite":["json/intl402.json"],"version":"ES5.1"} \ No newline at end of file
+{"date":"2012-02-03","numTests":1,"testSuite":["json/intl402.json"],"version":"ES5.1"} \ No newline at end of file