aboutsummaryrefslogtreecommitdiffstats
path: root/website/json/ch13.json
diff options
context:
space:
mode:
authorDavid Fugate <dfugate@microsoft.com>2011-10-03 13:31:15 -0700
committerDavid Fugate <dfugate@microsoft.com>2011-10-03 13:31:15 -0700
commit5a665767e6813b4b4a41a4ac6b8c9ae3052d51c1 (patch)
tree674f26ba9130f4cd828748ea49b82c2b551357b6 /website/json/ch13.json
parentb66316de6987047caf60343422f904459d7c7afd (diff)
Re-gen'ed website using new Sputnik directory names.
Diffstat (limited to 'website/json/ch13.json')
-rw-r--r--website/json/ch13.json1
1 files changed, 1 insertions, 0 deletions
diff --git a/website/json/ch13.json b/website/json/ch13.json
new file mode 100644
index 000000000..969335ac4
--- /dev/null
+++ b/website/json/ch13.json
@@ -0,0 +1 @@
+{"testsCollection":{"name":"Chapter - ch13","numTests":"113","tests":[{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiAieD1mdW5jdGlvbiB5KCl7fSIgc3RhdGVtZW50IGRvZXMgbm90IHN0b3JlIGEgcmVmZXJlbmNlIHRvIHRoZSBuZXcgZnVuY3Rpb24gaW4gdGhlIHZhcmFpYmxlIHkoSWRlbnRpZmllcikKICoKICogQHBhdGggY2gxMy9TMTNfQTEuanMKICogQGRlc2NyaXB0aW9uIENoZWNraW5nIHRoZSB0eXBlIG9mIHkKICovCgp2YXIgX19mdW5jID0gZnVuY3Rpb24gX19leHBfX2Z1bmMoKXtyZXR1cm4gMDt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2Z1bmMgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICh0eXBlb2YgX19leHBfX2Z1bmMgIT09ICJ1bmRlZmluZWQiKXsKICAgICRFUlJPUignIzI6IHR5cGVvZiBfX2V4cF9fZnVuYyA9PT0gInVuZGVmaW5lZCIuIEFjdHVhbDogdHlwZW9mIF9fZXhwX19mdW5jID09PScrdHlwZW9mIF9fZXhwX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbiBpcyBhIGRhdGEKICoKICogQHBhdGggY2gxMy9TMTNfQTEwLmpzCiAqIEBkZXNjcmlwdGlvbiBVc2luZyBmdW5jdGlvbiBhcyBhIHByb3BlcnR5IG9mIGFuIG9iamVjdAogKi8KCmZ1bmN0aW9uIF9femlnZ3lfX2Z1bmMoKXtyZXR1cm4gInppZ2d5IHN0YXJkdXN0In0KCnZhciBfX211c2ljX2JveD17fTsKCl9fbXVzaWNfYm94LnppZ2d5ID0gX196aWdneV9fZnVuYzsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIwppZiAodHlwZW9mIF9fbXVzaWNfYm94LnppZ2d5ICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19tdXNpY19ib3guemlnZ3kgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fbXVzaWNfYm94LnppZ2d5ID09PScrdHlwZW9mIF9fbXVzaWNfYm94LnppZ2d5KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fbXVzaWNfYm94LnppZ2d5KCkgIT09ICJ6aWdneSBzdGFyZHVzdCIpIHsKCSRFUlJPUignIzI6IF9fbXVzaWNfYm94LnppZ2d5KCkgPT09ICJ6aWdneSBzdGFyZHVzdCIuIEFjdHVhbDogX19tdXNpY19ib3guemlnZ3koKSA9PT0nK19fbXVzaWNfYm94LnppZ2d5KCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"Function is a data","description":"Using function as a property of an object","path":"TestCases/ch13/S13_A10.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy9TMTNfQTExX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgcmVzdWx0IG9mICJkZWxldGUgYXJndW1lbnRzIgogKi8KCmZ1bmN0aW9uIF9fZnVuYygpeyByZXR1cm4gZGVsZXRlIGFyZ3VtZW50czt9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoIkEiLCJCIiwxLDIpKSB7CgkkRVJST1IoJyMxOiBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfScpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy9TMTNfQTExX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGVja2luZyBpZiBkZWxldGluZyB0aGUgYXJndW1lbnRzIHByb3BlcnR5IGZhaWxzIGFuZCB0aGVuIHJldHVybmluZyBpdAogKi8KCmZ1bmN0aW9uIF9fZnVuYygpeyAKICAgIGRlbGV0ZSBhcmd1bWVudHM7CiAgICByZXR1cm4gYXJndW1lbnRzOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19mdW5jKCJBIiwiQiIsMSwyKSAhPT0gIm9iamVjdCIpIHsKCSRFUlJPUignIzE6IGFyZ3VtZW50cyBwcm9wZXJ0eSBoYXMgYXR0cmlidXRlIHsgRG9udERlbGV0ZSB9Jyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy9TMTNfQTExX1QzLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWxldGluZyBhcmd1bWVudHNbaV0gYW5kIHJldHVybmluZyByZXN1bHQgb2YgdGhlIG9wZXJhdGlvbgogKi8KCmZ1bmN0aW9uIF9fZnVuYygpewogICAgd2FzX2RlbD1mYWxzZTsKICAgIGZvciAoaT0wOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKQogICAgICAgd2FzX2RlbD0gd2FzX2RlbCB8fCBkZWxldGUgYXJndW1lbnRzW2ldOwogICAgcmV0dXJuIHdhc19kZWw7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKCFfX2Z1bmMoIkEiLCJCIiwxLDIpKSB7CgkkRVJST1IoJyMxOiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSBlbGVtZW50cyBvZiBhcmd1bWVudHMgY2FuIGJlIGRlbGV0ZWQnKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgb25seSBpdHMgZWxlbWVudHMgY2FuIGJlIGRlbGV0ZWQKICoKICogQHBhdGggY2gxMy9TMTNfQTExX1Q0LmpzCiAqIEBkZXNjcmlwdGlvbiBEZWxldGluZyBhcmd1bWVudHNbaV0gYW5kIGNoZWNraW5nIHRoZSB0eXBlIG9mIGFyZ3VtZW50c1tpXQogKi8KCmZ1bmN0aW9uIF9fZnVuYygpewogICAgaXNfdW5kZWY9dHJ1ZTsKICAgIGZvciAoaT0wOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKQogICAgewogICAgICAgIGRlbGV0ZSBhcmd1bWVudHNbaV07CiAgICAgICAgaXNfdW5kZWY9IGlzX3VuZGVmICYmICh0eXBlb2YgYXJndW1lbnRzW2ldID09PSAidW5kZWZpbmVkIik7CiAgICB9OyAgICAgICAKICAgIHJldHVybiBpc191bmRlZjsKfTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKCFfX2Z1bmMoIkEiLCJCIiwxLDIpKSB7CgkkRVJST1IoJyMxOiBTaW5jZSBhcmd1bWVudHMgcHJvcGVydHkgaGFzIGF0dHJpYnV0ZSB7IERvbnREZWxldGUgfSwgYnV0IGVsZW1lbnRzIG9mIGFyZ3VtZW50cyBjYW4gYmUgZGVsZXRlZCcpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW4gZ2xvYmFsIG9yIGZ1bmN0aW9uIHNjb3BlIGFyZSB7RG9udERlbGV0ZX0KICoKICogQHBhdGggY2gxMy9TMTNfQTEyX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGVja2luZyBpZiBkZWxldGluZyBhIGZ1bmN0aW9uIHRoYXQgaXMgZGVjbGFyZWQgaW4gZ2xvYmFsIHNjb3BlIGZhaWxzCiAqLwoKQUxJVkU9IkxldG92IGlzIGFsaXZlIgoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICByZXR1cm4gQUxJVkU7Cn07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChkZWxldGUgX19mdW5jKSB7CgkkRVJST1IoJyMxOiBkZWxldGUgX19mdW5jIHJldHVybmluZyBmYWxzZScpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCkgIT09IEFMSVZFKSB7CgkkRVJST1IoJyMyOiBfX2Z1bmMoKSA9PT0gQUxJVkUuIEFjdHVhbDogX19mdW5jKCkgPT09JytfX2Z1bmMoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW4gZ2xvYmFsIG9yIGZ1bmN0aW9uIHNjb3BlIGFyZSB7RG9udERlbGV0ZX0KICoKICogQHBhdGggY2gxMy9TMTNfQTEyX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGVja2luZyBpZiBkZWxldGluZyBhIGZ1bmN0aW9uIHRoYXQgaXMgZGVjbGFyZWQgaW4gZnVuY3Rpb24gc2NvcGUgZmFpbHMKICovCgpBTElWRT0iTGV0b3YgaXMgYWxpdmUiCgpmdW5jdGlvbiBfX2NvbnQoKXsKCiAgICBmdW5jdGlvbiBfX2Z1bmMoKXsKICAgICAgICByZXR1cm4gQUxJVkU7CiAgICB9OwogICAgCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgIC8vQ0hFQ0sjMQogICAgaWYgKGRlbGV0ZSBfX2Z1bmMpIHsKICAgIAkkRVJST1IoJyMxOiBkZWxldGUgX19mdW5jIHJldHVybmluZyBmYWxzZScpOwogICAgfQogICAgLy8KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgIC8vQ0hFQ0sjMgogICAgaWYgKF9fZnVuYygpICE9PSBBTElWRSkgewogICAgCSRFUlJPUignIzI6IF9fZnVuYygpID09PSBBTElWRS4gQWN0dWFsOiBfX2Z1bmMoKSA9PT0nK19fZnVuYygpKTsKICAgIH0KICAgIC8vCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KfTsKCl9fY29udCgpOwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBEZWxldGluZyBhcmd1bWVudHNbaV0gbGVhZHMgdG8gYnJlYWtpbmcgdGhlIGNvbm5lY3Rpb24gdG8gbG9jYWwgcmVmZXJlbmNlCiAqCiAqIEBwYXRoIGNoMTMvUzEzX0ExM19UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVsZXRpbmcgYXJndW1lbnRzW2ldCiAqLwoKZnVuY3Rpb24gX19mdW5jKF9fYXJnKXsKICBkZWxldGUgYXJndW1lbnRzWzBdOwogIGlmIChhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCkgewogICAgJEVSUk9SKCcjMS4xOiBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCcpOwogIH0KICByZXR1cm4gX19hcmc7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygxKSAhPT0gMSkgewoJJEVSUk9SKCcjMS4yOiBfX2Z1bmMoMSkgPT09IDEuIEFjdHVhbDogX19mdW5jKDEpID09PScrX19mdW5jKDEpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Deleting arguments[i] leads to breaking the connection to local reference","description":"Deleting arguments[i]","path":"TestCases/ch13/S13_A13_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBEZWxldGluZyBhcmd1bWVudHNbaV0gbGVhZHMgdG8gYnJlYWtpbmcgdGhlIGNvbm5lY3Rpb24gdG8gbG9jYWwgcmVmZXJlbmNlCiAqCiAqIEBwYXRoIGNoMTMvUzEzX0ExM19UMi5qcwogKiBAZGVzY3JpcHRpb24gQ2hhbmdpbmcgYXJndW1lbnRzIHZhbHVlIGFuZCB0aGVuIGRlbGV0aW5nIHRoZSBhcmd1bWVudAogKi8KCmZ1bmN0aW9uIF9fZnVuYyhfX2FyZyl7CiAgX19hcmcgPSAyOwogIGRlbGV0ZSBhcmd1bWVudHNbMF07CiAgaWYgKGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkKSB7CiAgICAkRVJST1IoJyMxLjE6IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkJyk7CiAgfQogIHJldHVybiBfX2FyZzsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKDEpICE9PSAyKSB7CgkkRVJST1IoJyMxLjI6IF9fZnVuYygxKSA9PT0gMi4gQWN0dWFsOiBfX2Z1bmMoMSkgPT09JytfX2Z1bmMoMSkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBEZWxldGluZyBhcmd1bWVudHNbaV0gbGVhZHMgdG8gYnJlYWtpbmcgdGhlIGNvbm5lY3Rpb24gdG8gbG9jYWwgcmVmZXJlbmNlCiAqCiAqIEBwYXRoIGNoMTMvUzEzX0ExM19UMy5qcwogKiBAZGVzY3JpcHRpb24gQ2hhbmdpbmcgYXJndW1lbnQgdmFsdWUsIGRlbGV0aW5nIHRoZSBhcmd1bWVudCBhbmQgdGhlbiBkZWZpbmluZyBhIG5ldyB2YWx1ZSBmb3IgYXJndW1lbnRzW2ldCiAqLwoKZnVuY3Rpb24gX19mdW5jKF9fYXJnKXsKICBfX2FyZyA9IDI7CiAgZGVsZXRlIGFyZ3VtZW50c1swXTsKICBpZiAoYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQpIHsKICAgICRFUlJPUignIzEuMTogYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQnKTsKICB9CiAgYXJndW1lbnRzWzBdID0gIkEiOwogIGlmIChhcmd1bWVudHNbMF0gIT09ICJBIikgewogICAgJEVSUk9SKCcjMS4yOiBhcmd1bWVudHNbMF0gPT09ICJBIicpOwogIH0KICByZXR1cm4gX19hcmc7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygxKSAhPT0gMikgewoJJEVSUk9SKCcjMS4zOiBfX2Z1bmMoMSkgPT09IDIuIEFjdHVhbDogX19mdW5jKDEpID09PScrX19mdW5jKDEpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBVbmljb2RlIHN5bWJvbHMgaW4gZnVuY3Rpb24gbmFtZSBhcmUgYWxsb3dlZAogKgogKiBAcGF0aCBjaDEzL1MxM19BMTQuanMKICogQGRlc2NyaXB0aW9uIERlZmluaW5nIGZ1bmN0aW9uIG5hbWUgd2l0aCB1bmljb2RlIHN5bWJvbHMKICovCgpldmFsKCJmdW5jdGlvbiBfX2Z1bmNcdTAwNDEoX19hcmcpe3JldHVybiBfX2FyZzt9OyIpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZnVuY0EgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHVuaWNvZGUgc3ltYm9scyBpbiBmdW5jdGlvbiBuYW1lIGFyZSBhbGxvd2VkJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Unicode symbols in function name are allowed","description":"Defining function name with unicode symbols","path":"TestCases/ch13/S13_A14.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzL1MxM19BMTVfVDEuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggIl9fZnVuYyhhcmd1bWVudHMpIgogKi8KCmZ1bmN0aW9uIF9fZnVuYyhhcmd1bWVudHMpewogICAgcmV0dXJuIGFyZ3VtZW50czsKfTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYyg0MikgIT09IDQyKSB7CgkkRVJST1IoJyMxOiAiYXJndW1lbnRzIiB2YXJpYWJsZSBvdmVycmlkZXMgQWN0aXZhdGlvbk9iamVjdC5hcmd1bWVudHMnKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Declaring a function with \"__func(arguments)\"","path":"TestCases/ch13/S13_A15_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzL1MxM19BMTVfVDIuanMKICogQGRlc2NyaXB0aW9uIE92ZXJyaWRpbmcgYXJndW1lbnRzIHdpdGhpbiBmdW5jdGlvbnMgYm9keQogKi8KClRIRV9BTlNXRVI9IkFuc3dlciB0byBMaWZlLCB0aGUgVW5pdmVyc2UsIGFuZCBFdmVyeXRoaW5nIjsKCmZ1bmN0aW9uIF9fZnVuYygpewogICAgdmFyIGFyZ3VtZW50cyA9IFRIRV9BTlNXRVI7CiAgICByZXR1cm4gYXJndW1lbnRzOwp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKDQyLDQyLDQyKSAhPT0gVEhFX0FOU1dFUikgewoJJEVSUk9SKCcjMTogICJhcmd1bWVudHMiIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cycpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Overriding arguments within functions body","path":"TestCases/ch13/S13_A15_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzL1MxM19BMTVfVDMuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIHZhcmlhYmxlIG5hbWVkIHdpdGggImFyZ3VtZW50cyIgd2l0aG91dCBhIGZ1bmN0aW9uCiAqLwoKVEhFX0FOU1dFUj0iQW5zd2VyIHRvIExpZmUsIHRoZSBVbml2ZXJzZSwgYW5kIEV2ZXJ5dGhpbmciOwoKdmFyIGFyZ3VtZW50cyA9IFRIRV9BTlNXRVI7CgpmdW5jdGlvbiBfX2Z1bmMoYXJndW1lbnRzKXsKICAgIHJldHVybiBhcmd1bWVudHM7CiAgICAKfTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2Z1bmMoKSAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2Z1bmMoKSA9PT0gInVuZGVmaW5lZCIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYygpID09PScrdHlwZW9mIF9fZnVuYygpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYygiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIikgIT09ICJUaGUgVWx0aW1hdGUgUXVlc3Rpb24iKSB7CgkkRVJST1IoJyMyOiBfX2Z1bmMoIlRoZSBVbHRpbWF0ZSBRdWVzdGlvbiIpID09PSAiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIi4gQWN0dWFsOiBfX2Z1bmMoIlRoZSBVbHRpbWF0ZSBRdWVzdGlvbiIpPT09JytfX2Z1bmMoIlRoZSBVbHRpbWF0ZSBRdWVzdGlvbiIpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Declaring a variable named with \"arguments\" without a function","path":"TestCases/ch13/S13_A15_T3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzL1MxM19BMTVfVDQuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIHZhcmlhYmxlIG5hbWVkIHdpdGggImFyZ3VtZW50cyIgYW5kIGZvbGxvd2luZyBhICJyZXR1cm4iIHN0YXRlbWVudCB3aXRoaW4gYSBmdW5jdGlvbiBib2R5CiAqLwoKVEhFX0FOU1dFUj0iQW5zd2VyIHRvIExpZmUsIHRoZSBVbml2ZXJzZSwgYW5kIEV2ZXJ5dGhpbmciOwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICByZXR1cm4gdHlwZW9mIGFyZ3VtZW50czsKICAgIHZhciBhcmd1bWVudHMgPSBUSEVfQU5TV0VSOwp9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKDQyLDQyLDQyKSAhPT0gIm9iamVjdCIpIHsKCSRFUlJPUignIzE6IF9fZnVuYyg0Miw0Miw0MikgPT09ICJvYmplY3QiLiBBY3R1YWw6IF9fZnVuYyg0Miw0Miw0Mik9PT0nK19fZnVuYyg0Miw0Miw0MikpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiAnJ2FyZ3VtZW50cycnIHZhcmlhYmxlIG92ZXJyaWRlcyBBY3RpdmF0aW9uT2JqZWN0LmFyZ3VtZW50cwogKgogKiBAcGF0aCBjaDEzL1MxM19BMTVfVDUuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgdmFyaWFibGUgbmFtZWQgd2l0aCAiYXJndW1lbnRzIiB3aXRob3V0IGEgZnVuY3Rpb24KICovCgpUSEVfQU5TV0VSPSJBbnN3ZXIgdG8gTGlmZSwgdGhlIFVuaXZlcnNlLCBhbmQgRXZlcnl0aGluZyI7Cgp2YXIgYXJndW1lbnRzID0gVEhFX0FOU1dFUjsKCmZ1bmN0aW9uIF9fZnVuYygpewogICAgcmV0dXJuIGFyZ3VtZW50czsKfTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKCBfX2Z1bmMoKSA9PT0gVEhFX0FOU1dFUikgewoJJEVSUk9SKCcjMTogX19mdW5jKCkgIT09IFRIRV9BTlNXRVInKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYygiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIikgPT09ICJUaGUgVWx0aW1hdGUgUXVlc3Rpb24iKSB7CgkkRVJST1IoJyMyOiBfX2Z1bmMoIlRoZSBVbHRpbWF0ZSBRdWVzdGlvbiIpICE9PSAiVGhlIFVsdGltYXRlIFF1ZXN0aW9uIicpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","commentary":"''arguments'' variable overrides ActivationObject.arguments","description":"Creating a variable named with \"arguments\" without a function","path":"TestCases/ch13/S13_A15_T5.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBBbnkgc2VwYXJhdG9ycyBhcmUgYWRtaXR0ZWQgYmV0d2VlbiBkZWNsYXJhdGlvbiBjaHVua3MKICoKICogQHBhdGggY2gxMy9TMTNfQTE2LmpzCiAqIEBkZXNjcmlwdGlvbiBJbnNlcnRpbmcgc2VwYXJhdG9ycyBiZXR3ZWVuIGRlY2xhcmF0aW9uIGNodW5rcwogKi8KCmZ1bmN0aW9uCngKKAopCnsKfQo7Cgp4KCk7CgpmdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fTsKCnkoKTsKCmZ1bmN0aW9uCgp6CgooCgopCgp7CiAgICAKfQoKOwoKeigpOwoKZXZhbCgiZnVuY3Rpb25cdTAwMDlcdTIwMjl3KFx1MDAwQylcdTAwQTB7XHUwMDBEfTsiKTsKCncoKTsKCg==","commentary":"Any separators are admitted between declaration chunks","description":"Inserting separators between declaration chunks","path":"TestCases/ch13/S13_A16.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbiBjYWxsIGNhbm5vdCBhcHBlYXIgaW4gdGhlIHByb2dyYW0gYmVmb3JlIHRoZSBGdW5jdGlvbkV4cHJlc3Npb24gYXBwZWFycwogKgogKiBAcGF0aCBjaDEzL1MxM19BMTdfVDEuanMKICogQGRlc2NyaXB0aW9uIFRyeWluZyB0byBjYWxsIGEgZnVuY3Rpb24gYmVmb3JlIHRoZSBGdW5jdGlvbkV4cHJlc3Npb24gYXBwZWFycwogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5ewogICAgdmFyIF9fcmVzdWx0ID0gX19mdW5jKCk7CgkkRkFJTCgiIzEuMTogdmFyIF9fcmVzdWx0ID0gX19mdW5jKCkgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24iKTsKfSBjYXRjaChlKSB7CiAgaWYgKChlIGluc3RhbmNlb2YgVHlwZUVycm9yKSAhPT0gdHJ1ZSkgewogICAgJEVSUk9SKCcjMS4yOiBmdW5jIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciAgQWN0dWFsOiAnICsgKGUpKTsgIAogIH0KfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBfX2Z1bmMgPSBmdW5jdGlvbiAoKXtyZXR1cm4gIk9ORSI7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKdmFyIF9fcmVzdWx0ID0gX19mdW5jKCk7CmlmIChfX3Jlc3VsdCAhPT0gIk9ORSIpIHsKCSRFUlJPUignIzI6IF9fcmVzdWx0ID09PSAiT05FIi4gQWN0dWFsOiBfX3Jlc3VsdCA9PT0nK19fcmVzdWx0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCl9fZnVuYyA9IGZ1bmN0aW9uICgpe3JldHVybiAiVFdPIjt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwp2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKTsKaWYgKF9fcmVzdWx0ICE9PSAiVFdPIikgewoJJEVSUk9SKCcjMzogX19yZXN1bHQgPT09ICJUV08iLiBBY3R1YWw6IF9fcmVzdWx0ID09PScrX19yZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbiBjYWxsIGNhbm5vdCBhcHBlYXIgaW4gdGhlIHByb2dyYW0gYmVmb3JlIHRoZSBGdW5jdGlvbkV4cHJlc3Npb24gYXBwZWFycwogKgogKiBAcGF0aCBjaDEzL1MxM19BMTdfVDIuanMKICogQGRlc2NyaXB0aW9uIFRyeWluZyB0byBjYWxsIGEgZnVuY3Rpb24gYmVmb3JlIHRoZSBGdW5jdGlvbkV4cHJlc3Npb24gYXBwZWFycyBhbmQgdGhlbiB1c2luZyB0aGUgRnVuY3Rpb25FeHByZXNzaW9uIG9uZSBtb3JlIHRpbWUKICovCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCnRyeXsKICAgIHZhciBfX3Jlc3VsdCA9IF9fZnVuYygpOwoJJEVSUk9SKCIjMTogdmFyIF9fcmVzdWx0ID0gX19mdW5jKCkgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24iKTsKfSBjYXRjaChlKSB7CiAgaWYgKChlIGluc3RhbmNlb2YgVHlwZUVycm9yKSAhPT0gdHJ1ZSkgewogICAgJEVSUk9SKCcjMS4yOiBmdW5jIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciAgQWN0dWFsOiAnICsgKGUpKTsgIAogIH0KfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vIG5vdyB3ZSByZWFjaCB0aGUgX19mdW5jIG92ZXJ3cml0aW5nIGJ5IG5ldyBleHByZXNzaW9uCnZhciBfX2Z1bmMgPSBmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gIk9ORSI7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKdmFyIF9fcmVzdWx0ID0gX19mdW5jKCk7CmlmIChfX3Jlc3VsdCAhPT0gIk9ORSIpIHsKCSRFUlJPUignIzI6IF9fcmVzdWx0ID09PSAiT05FIi4gQWN0dWFsOiBfX3Jlc3VsdCA9PT0nK19fcmVzdWx0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCl9fZnVuYyA9IGZ1bmN0aW9uIF9fZnVuYygpe3JldHVybiAiVFdPIjt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwp2YXIgX19yZXN1bHQgPSBfX2Z1bmMoKTsKaWYgKF9fcmVzdWx0ICE9PSAiVFdPIikgewoJJEVSUk9SKCcjMzogX19yZXN1bHQgPT09ICJUV08iLiBBY3R1YWw6IF9fcmVzdWx0ID09PScrX19yZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBDbG9zdXJlcyBhcmUgYWRtaXR0ZWQKICoKICogQHBhdGggY2gxMy9TMTNfQTE4LmpzCiAqIEBkZXNjcmlwdGlvbiBVc2luZyBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGFzIGEgZnVuY3Rpb24gcGFyYW1ldGVyCiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIHNpbnggIT09ICd1bmRlZmluZWQnKSB7CgkkRVJST1IoJyMxOiB0eXBlb2Ygc2lueCA9PT0gXCd1bmRlZmluZWRcJy4gQWN0dWFsOiB0eXBlb2Ygc2lueCA9PT0nK3R5cGVvZiBzaW54KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBfX3ZhbCA9IGZ1bmN0aW9uIGRlcml2YXRpdmUoZiwgZHgpIHsKICAgIHJldHVybiBmdW5jdGlvbih4KSB7CiAgICAgIHJldHVybiAoZih4ICsgZHgpIC0gZih4KSkgLyBkeDsKICAgIH07Cn0oZnVuY3Rpb24gc2lueCh4KXtyZXR1cm4gTWF0aC5zaW4oeCk7fSwuMDAwMSkoMC41KTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHR5cGVvZiBzaW54ICE9PSAndW5kZWZpbmVkJykgewoJJEVSUk9SKCcjMjogdHlwZW9mIHNpbnggPT09IFwndW5kZWZpbmVkXCcuIEFjdHVhbDogdHlwZW9mIHNpbnggPT09Jyt0eXBlb2Ygc2lueCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Closures are admitted","description":"Using a function declaration as a function parameter","path":"TestCases/ch13/S13_A18.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiAidmFyIiBkb2VzIG5vdCBvdmVycmlkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbgogKgogKiBAcGF0aCBjaDEzL1MxM19BMTlfVDEuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gYW5kIGEgdmFyaWFibGUgd2l0aCBpZGVudGljYWwgSWRlbnRpZmllcnMgaW4gZ2xvYmFsIHNjb3BlCiAqLwoKLy8gc2luY2UgInZhciIgZG9lcyBub3Qgb3ZlcnJpZGUgZnVuY3Rpb24gZGVjbGFyYXRpb24gX19kZWNsIGlzIHNldCB0byBmdW5jdGlvbgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19kZWNsICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19kZWNsID09PSAiZnVuY3Rpb24iLiBBY3R1YWw6IHR5cGVvZiBfX2RlY2wgPT09Jyt0eXBlb2YgX19kZWNsKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBfX2RlY2wgPSAxOwoKLy9zaW5jZSBzdGF0ZW1lbnQgd2FzIGV2YWx1dGVkIF9fZGVjbCB0dXJucyB0byAxIGZyb20gZnVuY3Rpb24KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19kZWNsICE9PSAxKSB7CgkkRVJST1IoJyMyOiBfX2RlY2wgPT09IDEuIEFjdHVhbDogX19kZWNsID09PScrX19kZWNsKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIF9fZGVjbCgpe3JldHVybiAxO30KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiAidmFyIiBkb2VzIG5vdCBvdmVycmlkZSBmdW5jdGlvbiBkZWNsYXJhdGlvbgogKgogKiBAcGF0aCBjaDEzL1MxM19BMTlfVDIuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gYW5kIGEgdmFyaWFibGUgd2l0aCBpZGVudGljYWwgSWRlbnRpZmllcnMgd2l0aGluIGZ1bmN0aW9uIHNjb3BlCiAqLwoKKGZ1bmN0aW9uICgpewoKICAgIC8vIHNpbmNlICJ2YXIiIGRvZXMgbm90IG92ZXJyaWRlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIF9fZGVjbCBpcyBzZXQgdG8gZnVuY3Rpb24KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgLy9DSEVDSyMxCiAgICBpZiAodHlwZW9mIF9fZGVjbCAhPT0gImZ1bmN0aW9uIikgewogICAgCSRFUlJPUignIzE6IHR5cGVvZiBfX2RlY2wgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZGVjbCA9PT0nK3R5cGVvZiBfX2RlY2wpOwogICAgfQogICAgLy8KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgCiAgICB2YXIgX19kZWNsID0gMTsKICAgIAogICAgLy9zaW5jZSBzdGF0ZW1lbnQgd2FzIGV2YWx1dGVkIF9fZGVjbCB0dXJucyB0byAxIGZyb20gZnVuY3Rpb24KICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgLy9DSEVDSyMyCiAgICBpZiAoX19kZWNsICE9PSAxKSB7CiAgICAJJEVSUk9SKCcjMjogX19kZWNsID09PSAxLiBBY3R1YWw6IF9fZGVjbCA9PT0nK19fZGVjbCk7CiAgICB9CiAgICAvLwogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgogICAgZnVuY3Rpb24gX19kZWNsKCl7cmV0dXJuIDE7fQp9KSgpOyAgICAKCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBmdW5jdGlvbiBtdXN0IGJlIGV2YWx1YXRlZCBpbnNpZGUgdGhlIGV4cHJlc3Npb24KICoKICogQHBhdGggY2gxMy9TMTNfQTJfVDEuanMKICogQGRlc2NyaXB0aW9uIERlZmluaW5nIGZ1bmN0aW9uIGJvZHkgd2l0aCAicmV0dXJuIGFyZyIKICovCgp2YXIgeCA9IChmdW5jdGlvbiBfX2Z1bmMoYXJnKXtyZXR1cm4gYXJnfSkoMSk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh4ICE9PSAxKSB7CgkkRVJST1IoJyMxOiB4ID09PSAxLiBBY3R1YWw6IHggPT09Jyt4KTsKfQoKLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICh0eXBlb2YgX19mdW5jICE9PSAndW5kZWZpbmVkJykgewoJJEVSUk9SKCcjMjogdHlwZW9mIF9fZnVuYyA9PT0gXCd1bmRlZmluZWRcJy4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"function must be evaluated inside the expression","description":"Defining function body with \"return arg\"","path":"TestCases/ch13/S13_A2_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBmdW5jdGlvbiBtdXN0IGJlIGV2YWx1YXRlZCBpbnNpZGUgdGhlIGV4cHJlc3Npb24KICoKICogQHBhdGggY2gxMy9TMTNfQTJfVDIuanMKICogQGRlc2NyaXB0aW9uIERlZmluaW5nIGZ1bmN0aW9uIGJvZHkgd2l0aCAicmV0dXJuIGFyZyArIGFyZ3VtZW50c1sxXSIKICovCgp2YXIgeCA9IChmdW5jdGlvbiBfX2Z1bmMoYXJnKXtyZXR1cm4gYXJnICsgYXJndW1lbnRzWzFdfSkoMSwiMSIpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoeCAhPT0gIjExIikgewoJJEVSUk9SKCcjMTogeCA9PT0gIjExIi4gQWN0dWFsOiB4ID09PScreCk7Cn0KCi8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAodHlwZW9mIF9fZnVuYyAhPT0gJ3VuZGVmaW5lZCcpIHsKCSRFUlJPUignIzI6IHR5cGVvZiBfX2Z1bmMgPT09IFwndW5kZWZpbmVkXCcuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBmdW5jdGlvbiBtdXN0IGJlIGV2YWx1YXRlZCBpbnNpZGUgdGhlIGV4cHJlc3Npb24KICoKICogQHBhdGggY2gxMy9TMTNfQTJfVDMuanMKICogQGRlc2NyaXB0aW9uIERlZmluaW5nIGZ1bmN0aW9uIGJvZHkgd2l0aCAicmV0dXJuIGFyZ3VtZW50c1swXSArIi0iKyBhcmd1bWVudHNbMV0iCiAqLwoKdmFyIHggPSAoZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuIGFyZ3VtZW50c1swXSArIi0iKyBhcmd1bWVudHNbMV19KSgiT2JpIiwiV2FuIik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh4ICE9PSAiT2JpLVdhbiIpIHsKCSRFUlJPUignIzE6IHggPT09ICJPYmktV2FuIi4gQWN0dWFsOiB4ID09PScreCk7Cn0KCi8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAodHlwZW9mIF9fZnVuYyAhPT0gJ3VuZGVmaW5lZCcpIHsKCSRFUlJPUignIzI6IHR5cGVvZiBfX2Z1bmMgPT09IFwndW5kZWZpbmVkXCcuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBUaGUgSWRlbnRpZmllciBpbiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tIGluc2lkZSB0aGUgRnVuY3Rpb25FeHByZXNzaW9uJ3MgRnVuY3Rpb25Cb2R5IHRvIGFsbG93IHRoZSBmdW5jdGlvbiBjYWxsaW5nIGl0c2VsZiByZWN1cnNpdmVseQogKgogKiBAcGF0aCBjaDEzL1MxM19BM19UMS5qcwogKiBAZGVzY3JpcHRpb24gQ3JlYXRpbmcgYSByZWN1cnNpdmUgZnVuY3Rpb24gdGhhdCBjYWxjdWxhdGVzIGZhY3RvcmlhbCwgYXMgYSB2YXJpYWJsZS4KICogRnVuY3Rpb24gY2FsbCBpdHNlbGYgYnkgaXRgcyBuYW1lCiAqLwoKdmFyIF9fZnVuYyA9IGZ1bmN0aW9uIF9fZXhwX19mdW5jKGFyZyl7CiAgICBpZiAoYXJnID09PSAxKSB7CiAgICAJcmV0dXJuIGFyZzsKICAgIH0gZWxzZSB7CiAgICAJcmV0dXJuIF9fZXhwX19mdW5jKGFyZy0xKSphcmc7CiAgICB9Cn07Cgp2YXIgZmFjdF9vZl8zID0gIF9fZnVuYygzKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKGZhY3Rfb2ZfMyAhPT0gNikgewoJJEVSUk9SKCIjMTogZmFjdF9vZl8zID09PSA2LiBBY3R1YWw6IGZhY3Rfb2ZfMyA9PT0iK2ZhY3Rfb2ZfMyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBUaGUgSWRlbnRpZmllciBpbiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tIGluc2lkZSB0aGUgRnVuY3Rpb25FeHByZXNzaW9uJ3MgRnVuY3Rpb25Cb2R5IHRvIGFsbG93IHRoZSBmdW5jdGlvbiBjYWxsaW5nIGl0c2VsZiByZWN1cnNpdmVseQogKgogKiBAcGF0aCBjaDEzL1MxM19BM19UMi5qcwogKiBAZGVzY3JpcHRpb24gQ3JlYXRpbmcgYSByZWN1cnNpdmUgZnVuY3Rpb24gdGhhdCBjYWxjdWxhdGVzIGZhY3RvcmlhbCwgYXMgYSB2YXJpYWJsZS4KICogRnVuY3Rpb24gY2FsbHMgaXRzZWxmIGJ5IHRoZSBuYW1lIG9mIHRoZSB2YXJpYWJsZQogKi8KCnZhciBfX2Z1bmMgPSBmdW5jdGlvbiAoYXJnKXsKICAgIGlmIChhcmcgPT09IDEpIHsKICAgIAlyZXR1cm4gYXJnOwogICAgfSBlbHNlIHsKICAgIAlyZXR1cm4gX19mdW5jKGFyZy0xKSphcmc7CiAgICB9Cn07Cgp2YXIgZmFjdF9vZl8zID0gIF9fZnVuYygzKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKGZhY3Rfb2ZfMyAhPT0gNikgewoJJEVSUk9SKCIjMTogZmFjdF9vZl8zID09PSA2LiBBY3R1YWw6IGZhY3Rfb2ZfMyA9PT0iK2ZhY3Rfb2ZfMyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBUaGUgSWRlbnRpZmllciBpbiBhIEZ1bmN0aW9uRXhwcmVzc2lvbiBjYW4gYmUgcmVmZXJlbmNlZCBmcm9tIGluc2lkZSB0aGUgRnVuY3Rpb25FeHByZXNzaW9uJ3MgRnVuY3Rpb25Cb2R5IHRvIGFsbG93IHRoZSBmdW5jdGlvbiBjYWxsaW5nIGl0c2VsZiByZWN1cnNpdmVseQogKgogKiBAcGF0aCBjaDEzL1MxM19BM19UMy5qcwogKiBAZGVzY3JpcHRpb24gQ3JlYXRpbmcgc2ltcGxlIHJlY3Vyc2l2ZSBmdW5jdGlvbiB0aGF0IGNhbGN1bGF0ZXMgZmFjdG9yaWFsCiAqLwoKZnVuY3Rpb24gX19mdW5jKGFyZyl7CiAgICBpZiAoYXJnID09PSAxKSB7CiAgICAJcmV0dXJuIGFyZzsKICAgIH0gZWxzZSB7CiAgICAJcmV0dXJuIF9fZnVuYyhhcmctMSkqYXJnOwogICAgfQp9OwoKdmFyIGZhY3Rfb2ZfMyA9ICBfX2Z1bmMoMyk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChmYWN0X29mXzMgIT09IDYpIHsKCSRFUlJPUigiIzE6IGZhY3Rfb2ZfMyA9PT0gNi4gQWN0dWFsOiBmYWN0X29mXzMgPT09IitmYWN0X29mXzMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzL1MxM19BNF9UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHN0cmluZwogKi8KCmZ1bmN0aW9uIF9fZnVuYygpe3JldHVybiAiemlnLXppZy1zcHV0bmlrIjt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMSAKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2Z1bmMgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCkgIT09ICJ6aWctemlnLXNwdXRuaWsiKSB7CgkkRVJST1IoJyMyOiBfX2Z1bmMoKSA9PT0gInppZy16aWctc3B1dG5payIuIEFjdHVhbDogX19mdW5jKCkgPT09JytfX2Z1bmMoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzL1MxM19BNF9UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gdGhhdCB1c2VzIHByZWZpeCBpbmNyZW1lbnQgb3BlcmF0b3Igd2l0aGluIGl0cyAicmV0dXJuIiBFeHByZXNzaW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jKGFyZyl7cmV0dXJuICsrYXJnO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxIAppZiAodHlwZW9mIF9fZnVuYyAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2Z1bmMoMSkgIT09IDIpIHsKCSRFUlJPUignIzI6IF9fZnVuYygxKSA9PT0gMi4gQWN0dWFsOiBfX2Z1bmMoMSkgPT09JytfX2Z1bmMoMSkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzL1MxM19BNF9UMy5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gdGhhdCB1c2VzIGFyaXRobWV0aWNhbCBvcGVyYXRvcnMgd2l0aGluIGl0cyAicmV0dXJuIiBFeHByZXNzaW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jKGFyZzEsIGFyZzIsIGFyZzMpe3JldHVybiBhcmcxKz0oYXJnMis9YXJnMyk7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEgCmlmICh0eXBlb2YgX19mdW5jICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19mdW5jID09PSAiZnVuY3Rpb24iLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYygxMCwgMjAsIDMwKSAhPT0gNjApIHsKCSRFUlJPUignIzI6IF9fZnVuYygxMCwgMjAsIDMwKSA9PT0gNjAuIEFjdHVhbDogX19mdW5jKDEwLDIwLDMwKSA9PT0nK19fZnVuYygxMCwyMCwzMCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBUaGUgcHJvZHVjdGlvbiBGdW5jdGlvbkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24gSWRlbnRpZmllciAoIEZvcm1hbFBhcmFtZXRlckxpc3Rfb3B0ICkgeyBGdW5jdGlvbkJvZHkgfSIgaXMgcHJvY2Vzc2VkIGJ5IGZ1bmN0aW9uIGRlY2xhcmF0aW9ucwogKgogKiBAcGF0aCBjaDEzL1MxM19BNF9UNC5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gdGhhdCB1c2VzIHN0cmluZ3MgY29uY2F0ZW5haW9uIG9wZWF0b3Igd2l0aGluIGl0cyAicmV0dXJuIiBFeHByZXNzaW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuIGFyZ3VtZW50c1swXS5uYW1lICsgIiAiICsgYXJndW1lbnRzWzBdLnN1cm5hbWU7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEgCmlmICh0eXBlb2YgX19mdW5jICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19mdW5jID09PSAiZnVuY3Rpb24iLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYyh7bmFtZTonZm94Jywgc3VybmFtZTonbWFsZGVyJ30pICE9PSAiZm94IG1hbGRlciIpIHsKCSRFUlJPUignIzI6IF9fZnVuYyh7bmFtZTpcJ2ZveFwnLCBzdXJuYW1lOlwnbWFsZGVyXCd9KSA9PT0gImZveCBtYWxkZXIiLiBBY3R1YWw6IF9fZnVuYyh7bmFtZTpcJ2ZveFwnLCBzdXJuYW1lOlwnbWFsZGVyXCd9KSA9PT0nK19fZnVuYyh7bmFtZTonZm94Jywgc3VybmFtZTonbWFsZGVyJ30pKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIGZ1bmNfXyhhcmcpe3JldHVybiBhcmcubmFtZSArICIgIiArIGFyZy5zdXJuYW1lO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzIAppZiAodHlwZW9mIGZ1bmNfXyAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjMzogdHlwZW9mIGZ1bmNfXyA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM0CmlmIChmdW5jX18oe25hbWU6J2pvaG4nLCBzdXJuYW1lOidsZW5ub24nfSkgIT09ICJqb2huIGxlbm5vbiIpIHsKCSRFUlJPUignIzQ6IGZ1bmNfXyh7bmFtZTpcJ2pvaG5cJywgc3VybmFtZTpcJ2xlbm5vblwnfSkgPT09ICJqb2huIGxlbm5vbiIuIEFjdHVhbDogX19mdW5jKHtuYW1lOlwnam9oblwnLCBzdXJuYW1lOlwnbGVubm9uXCd9KSA9PT0nK19fZnVuYyh7bmFtZTonam9obicsIHN1cm5hbWU6J2xlbm5vbid9KSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIGNhbiBiZSBvdmVycmlkZWQgYnkgb3RoZXIgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aXRoIHRoZSBzYW1lIElkZW50aWZpZXIKICoKICogQHBhdGggY2gxMy9TMTNfQTZfVDEuanMKICogQGRlc2NyaXB0aW9uIER1cGxpY2F0aW5nIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuIDF9OwogCnZhciBfX3N0b3JlX19mdW5jID0gX19mdW5jOwogCnZhciBfXzEgPSBfX2Z1bmMoKTsKIAogZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuICdBJ307CiAKdmFyIF9fQSA9IF9fZnVuYygpOwogCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fc3RvcmVfX2Z1bmMgIT09IF9fZnVuYykgewoJJEVSUk9SKCcjMTogX19zdG9yZV9fZnVuYyA9PT0gX19mdW5jLiBBY3R1YWw6IF9fc3RvcmVfX2Z1bmMgPT09JytfX3N0b3JlX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gCiAKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX18xICE9PSBfX0EpIHsKCSRFUlJPUignIzI6IF9fMSA9PT0gX19BLiBBY3R1YWw6IF9fMSA9PT0nK19fMSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"FunctionDeclaration can be overrided by other FunctionDeclaration with the same Identifier","description":"Duplicating function declaration","path":"TestCases/ch13/S13_A6_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIGNhbiBiZSBvdmVycmlkZWQgYnkgb3RoZXIgRnVuY3Rpb25EZWNsYXJhdGlvbiB3aXRoIHRoZSBzYW1lIElkZW50aWZpZXIKICoKICogQHBhdGggY2gxMy9TMTNfQTZfVDIuanMKICogQGRlc2NyaXB0aW9uIENhbGxpbmcgYSBmdW5jdGlvbiBiZWZvcmUgaXQgaXMgZGVjbGFyZWQgb25lIG1vcmUgdGltZQogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5ewogICAgdmFyIF9fcmVzdWx0ID0gX19mdW5jKCk7Cn0gY2F0Y2goZSkgewogICAgJEZBSUwoIiMxOiBGdW5jdGlvbiBjYWxsIGNhbiBhcHBlYXJzIGluIHRoZSBwcm9ncmFtIGJlZm9yZSB0aGUgRnVuY3Rpb25EZWNsYXJhdGlvbiBhcHBlYXJzIik7Cn0KaWYgKF9fcmVzdWx0ICE9PSAiU0VDT05EIikgewoJJEVSUk9SKCcjMS4xOiBfX3Jlc3VsdCA9PT0gIlNFQ09ORCIuIEFjdHVhbDogX19yZXN1bHQgPT09JytfX3Jlc3VsdCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gIkZJUlNUIjt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgpfX3Jlc3VsdCA9IF9fZnVuYygpOwppZiAoX19yZXN1bHQgIT09ICJTRUNPTkQiKSB7CgkkRVJST1IoJyMyOiBfX3Jlc3VsdCA9PT0gIlNFQ09ORCIuIEFjdHVhbDogX19yZXN1bHQgPT09JytfX3Jlc3VsdCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2Z1bmMoKXtyZXR1cm4gIlNFQ09ORCI7fTsKCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBUaGUgRnVuY3Rpb25Cb2R5IG11c3QgYmUgU291cmNlRWxlbWVudHMKICoKICogQHBhdGggY2gxMy9TMTNfQTdfVDEuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nIG9ubHkgU291cmNlRWxlbWVudHMgd2l0aGluIHRoZSBGdW5jdGlvbkJvZHkKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXsnZ3JvdW5kIGNvbnRyb2wgdG8gbWFqb3IgdG9tJ307Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2Z1bmMgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19mdW5jX18yKCl7Yn07Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHR5cGVvZiBfX2Z1bmNfXzIgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzI6IHR5cGVvZiBfX2Z1bmNfXzIgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuY19fMiA9PT0nK3R5cGVvZiBfX2Z1bmNfXzIpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19mdW5jX18zKCl7MX07Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKHR5cGVvZiBfX2Z1bmNfXzMgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzM6IHR5cGVvZiBfX2Z1bmNfXzMgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuY19fMyA9PT0nK3R5cGVvZiBfX2Z1bmNfXzMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19mdW5jX180KCl7MStjfTsKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNAppZiAodHlwZW9mIF9fZnVuY19fNCAhPT0gImZ1bmN0aW9uIikgewoJJEVSUk9SKCcjNDogdHlwZW9mIF9fZnVuY19fNCA9PT0gImZ1bmN0aW9uIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jX180ID09PScrdHlwZW9mIF9fZnVuY19fNCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2Z1bmNfXzUoKXtpbmMoZCl9OwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM1CmlmICh0eXBlb2YgX19mdW5jX181ICE9PSAiZnVuY3Rpb24iKSB7CgkkRVJST1IoJyM1OiB0eXBlb2YgX19mdW5jX181ID09PSAiZnVuY3Rpb24iLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmNfXzUgPT09Jyt0eXBlb2YgX19mdW5jX181KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIF9fZnVuY19fNigpe3ZhciBcdTAwNDIgPSAxO307Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzYKaWYgKHR5cGVvZiBfX2Z1bmNfXzYgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzY6IHR5cGVvZiBfX2Z1bmNfXzYgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogdHlwZW9mIF9fZnVuY19fNiA9PT0nK3R5cGVvZiBfX2Z1bmNfXzYpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy9mdW5jdGlvbiBfX2Z1bmNfXzcoKXt2YXIgXHUwMDNkID0gMTt9OwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLy8vQ0hFQ0sjNwovL2lmICh0eXBlb2YgX19mdW5jX183ICE9PSAiZnVuY3Rpb24iKSB7Ci8vCSRFUlJPUignIzc6IFRoZSBGdW5jdGlvbkJvZHkgbXVzdCBiZSBTb3VyY2VFbGVtZW50cycpOwovL30KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"The FunctionBody must be SourceElements","description":"Using only SourceElements within the FunctionBody","path":"TestCases/ch13/S13_A7_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBUaGUgRnVuY3Rpb25Cb2R5IG11c3QgYmUgU291cmNlRWxlbWVudHMKICoKICogQHBhdGggY2gxMy9TMTNfQTdfVDIuanMKICogQGRlc2NyaXB0aW9uIEluc2VydGluZyBlbGVtZW50cyB0aGF0IGlzIGRpZmZlcmVudCBmcm9tIFNvdXJjZUVsZW1lbnRzIGludG8gdGhlIEZ1bmN0aW9uQm9keQogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5ewoJZXZhbCgiZnVuY3Rpb24gX19mdW5jKCl7LyBBQkN9Iik7CgkkRVJST1IoJyMxOiBldmFsKCJmdW5jdGlvbiBfX2Z1bmMoKXsvIEFCQ30iKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoKGUpewoJaWYoIShlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpKXsKCQkkRVJST1IoJyMxLjE6IGV2YWwoImZ1bmN0aW9uIF9fZnVuYygpey8gQUJDfSIpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uIG9mIFN5bnRheEVycm9yLiBBY3R1YWw6IGV4Y2VwdGlvbiBpcyAnK2UpOwoJfQp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwp0cnl7CglldmFsKCJmdW5jdGlvbiBfX2Z1bmMoKXsmMX0iKTsKCSRFUlJPUignIzM6IGV2YWwoImZ1bmN0aW9uIF9fZnVuYygpeyYxfSIpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0gY2F0Y2goZSl7CglpZighKGUgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpewoJCSRFUlJPUignIzMuMTogZXZhbCgiZnVuY3Rpb24gX19mdW5jKCl7JjF9IikgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24gb2YgU3ludGF4RXJyb3IuIEFjdHVhbDogZXhjZXB0aW9uIGlzICcrZSk7Cgl9Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM0CnRyeXsKCWV2YWwoImZ1bmN0aW9uIF9fZnVuYygpeyMgQUJDfSIpOwoJJEVSUk9SKCcjNDogZXZhbCgiZnVuY3Rpb24gX19mdW5jKCl7IyBBQkN9IikgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKTsKfSBjYXRjaChlKXsKCWlmKCEoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSl7CgkJJEVSUk9SKCcjNC4xOiBldmFsKCJmdW5jdGlvbiBfX2Z1bmMoKXsjIEFCQ30iKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbiBvZiBTeW50YXhFcnJvci4gQWN0dWFsOiBleGNlcHRpb24gaXMgJytlKTsKCX0KfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBUaGUgRnVuY3Rpb25Cb2R5IG11c3QgYmUgU291cmNlRWxlbWVudHMKICoKICogQHBhdGggY2gxMy9TMTNfQTdfVDMuanMKICogQGRlc2NyaXB0aW9uIENoZWNraW5nIGlmIGV4ZWN1dGlvbiBvZiAiZnVuY3Rpb24gX19mdW5jKCl7XEFcQlxDfSIgZmFpbHMKICogQG5lZ2F0aXZlCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7XEFcQlxDfTsKCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBBcmd1bWVudHMgcHJvcGVydHkgb2YgYWN0aXZhdGlvbiBvYmplY3QgY29udGFpbnMgcmVhbCBwYXJhbXMgdG8gYmUgcGFzc2VkCiAqCiAqIEBwYXRoIGNoMTMvUzEzX0E4X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBDcmVhdGluZyBhIGZ1bmN0aW9uIGRlY2xhcmVkIHdpdGggImZ1bmN0aW9uIF9fZnVuYyhwYXJhbTEsIHBhcmFtMiwgcGFyYW0zKSIgYW5kIHVzaW5nIGFyZ3VtZW50cy5sZW5ndGggcHJvcGVydHkgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgdGVzdAogKi8KCiBmdW5jdGlvbiBfX2Z1bmMocGFyYW0xLCBwYXJhbTIsIHBhcmFtMykgewogCXJldHVybiBhcmd1bWVudHMubGVuZ3RoOwogfQogCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygnQScpICE9PSAxKSB7CiAJJEVSUk9SKCcjMTogX19mdW5jKFwnQVwnKSA9PT0gMS4gQWN0dWFsOiBfX2Z1bmMoXCdBXCcpID09PScrX19mdW5jKCdBJykpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCdBJywgJ0InLCAxLCAyLF9fZnVuYykgIT09IDUpIHsKCSRFUlJPUignIzI6IF9fZnVuYyhcJ0FcJywgXCdCXCcsIDEsIDIsX19mdW5jKSA9PT0gNS4gQWN0dWFsOiBfX2Z1bmMoXCdBXCcsIFwnQlwnLCAxLCAyLF9fZnVuYykgPT09JytfX2Z1bmMoJ0EnLCAnQicsIDEsIDIsX19mdW5jKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKIAogCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBBcmd1bWVudHMgcHJvcGVydHkgb2YgYWN0aXZhdGlvbiBvYmplY3QgY29udGFpbnMgcmVhbCBwYXJhbXMgdG8gYmUgcGFzc2VkCiAqCiAqIEBwYXRoIGNoMTMvUzEzX0E4X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBDcmVhdGluZyBhIGZ1bmN0aW9uIHdpdGggbm8gcGFyYW1ldGVycyBhbmQgdXNpbmcgYXJndW1lbnRzLmxlbmd0aCBwcm9wZXJ0eSBpbiBvcmRlciB0byBwZXJmb3JtIHRoZSB0ZXN0CiAqLwoKIGZ1bmN0aW9uIF9fZnVuYygpIHsKIAlyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDsKIH0KIAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoJ0EnKSAhPT0gMSkgewogCSRFUlJPUignIzE6IF9fZnVuYyhcJ0FcJykgPT09IDEuIEFjdHVhbDogX19mdW5jKFwnQVwnKSA9PT0nK19fZnVuYygnQScpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYygnQScsICdCJywgMSwgMixfX2Z1bmMpICE9PSA1KSB7CgkkRVJST1IoJyMyOiBfX2Z1bmMoXCdBXCcsIFwnQlwnLCAxLCAyLF9fZnVuYykgPT09IDUuIEFjdHVhbDogX19mdW5jKFwnQVwnLCBcJ0JcJywgMSwgMixfX2Z1bmMpID09PScrX19mdW5jKCdBJywgJ0InLCAxLCAyLF9fZnVuYykpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19mdW5jKCkgIT09IDApIHsKCSRFUlJPUignIzM6IF9fZnVuYygpID09PSAwLiBBY3R1YWw6IF9fZnVuYygpID09PScrX19mdW5jKCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbiBjYW4gYmUgcGFzc2VkIGFzIGFyZ3VtZW50CiAqCiAqIEBwYXRoIGNoMTMvUzEzX0E5LmpzCiAqIEBkZXNjcmlwdGlvbiBVc2luZyBmdW5jdGlvbiBhcyBhcmd1bWVudCBvZiBhbm90aGVyIGZ1bmN0aW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jX19JTkMoYXJnKXtyZXR1cm4gYXJnICsgMTt9OwpmdW5jdGlvbiBfX2Z1bmNfX01VTFQoaW5jcmVtZW50YXRvciwgYXJnLCBtdWx0KXsgcmV0dXJuIGluY3JlbWVudGF0b3IoYXJnKSptdWx0OyB9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jX19NVUxUKF9fZnVuY19fSU5DLCAyLCAyKSAhPT0gNikgewoJJEVSUk9SKCcjMTogZnVuY3Rpb24gIGNhbiBiZSBwYXNzZWQgYXMgYXJndW1lbnQnKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","commentary":"Function can be passed as argument","description":"Using function as argument of another function","path":"TestCases/ch13/S13_A9.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBUaGUgZGVwdGggb2YgbmVzdGVkIGZ1bmN0aW9uIGNhbGxzIHJlYWNoZXMgMzIKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjFfQTFfVDEuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGZ1bmN0aW9uIGNhbGxzIDMyIGVsZW1lbnRzIGRlcHRoCiAqLwoKKGZ1bmN0aW9uKCl7CiAgICAoZnVuY3Rpb24oKXsKICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKXt9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0pKCkKICAgICAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgICAgICB9KSgpCiAgICAgICAgICAgIH0pKCkKICAgICAgICB9KSgpCiAgICB9KSgpCn0pKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBPYmplY3RzIGFzIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ5IHJlZmVyZW5jZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNF9UMS5qcwogKiBAZGVzY3JpcHRpb24gQWRkaW5nIG5ldyBudW1iZXIgcHJvcGVydHkgdG8gYSBmdW5jdGlvbiBhcmd1bWVudCB3aXRoaW4gdGhlIGZ1bmN0aW9uIGJvZHksCiAqIHdoZXJlIGV4cGxpY2l0IGFyZ3VtZW50IGlzIGFuIG9iamVjdCBkZWZpbmVkIHdpdGggInZhciBfX29iaj17fSIKICovCgpmdW5jdGlvbiBfX2Z1bmMoX19hcmcpewogICAgX19hcmcuZm9vPTc7Cn0KCnZhciBfX29iaj17fTsKCl9fZnVuYyhfX29iaik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX29iai5mb28gIT09IDcpIHsKCSRFUlJPUignIzE6IF9fb2JqLmZvbyA9PT0gNy4gQWN0dWFsOiBfX29iai5mb28gPT09JytfX29iai5mb28pOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBPYmplY3RzIGFzIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ5IHJlZmVyZW5jZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNF9UMi5qcwogKiBAZGVzY3JpcHRpb24gQWRkaW5nIG5ldyBzdHJpbmcgcHJvcGVydHkgdG8gYSBmdW5jdGlvbiBhcmd1bWVudCB3aXRoaW4gdGhlIGZ1bmN0aW9uIGJvZHksCiAqIHdoZXJlIGV4cGxpY2l0IGFyZ3VtZW50IGlzIGFuIG9iamVjdCBkZWZpbmVkIHdpdGggIl9fb2JqPXt9IgogKi8KCmZ1bmN0aW9uIF9fZnVuYyhfX2FyZyl7CiAgICBfX2FyZy5mb289IndoaXNrZXkgZ29nbyI7Cn0KCnZhciBfX29iaj17fTsKCiBfX2Z1bmMoX19vYmopOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19vYmouZm9vICE9PSAid2hpc2tleSBnb2dvIikgewoJJEVSUk9SKCcjMTogX19vYmouZm9vID09PSAid2hpc2tleSBnb2dvIi4gQWN0dWFsOiBfX29iai5mb28gPT09JytfX29iai5mb28pOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBPYmplY3RzIGFzIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ5IHJlZmVyZW5jZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNF9UMy5qcwogKiBAZGVzY3JpcHRpb24gQWRkaW5nIG5ldyBudW1iZXIgcHJvcGVydHkgdG8gYSBmdW5jdGlvbiBhcmd1bWVudCB3aXRoaW4gdGhlIGZ1bmN0aW9uIGJvZHksCiAqIHdoZXJlIGFycmF5IGVsZW1lbnQgImFyZ3VtZW50c1swXSIgaXMgYW4gb2JqZWN0IGRlZmluZWQgd2l0aCAiX19vYmo9e30iCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICBhcmd1bWVudHNbMF1bIlBJIl09My4xNDsKfQoKdmFyIF9fb2JqPXt9OwoKX19mdW5jKF9fb2JqKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fb2JqLlBJICE9PSAzLjE0KSB7CgkkRVJST1IoJyMxOiBfX29iai5QSSA9PT0gMy4xNC4gQWN0dWFsOiBfX29iai5QSSA9PT0nK19fb2JqLlBJKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBPYmplY3RzIGFzIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGJ5IHJlZmVyZW5jZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNF9UNC5qcwogKiBAZGVzY3JpcHRpb24gQWRkaW5nIG5ldyBudW1iZXIgcHJvcGVydHkgdG8gYSBmdW5jdGlvbiBhcmd1bWVudCB3aXRoaW4gdGhlIGZ1bmN0aW9uIGJvZHksCiAqIHdoZXJlIGFycmF5IGVsZW1lbnQgImFyZ3VtZW50c1swXSIgaXMgYW4gb2JqZWN0IGRlZmluZWQgd2l0aCAidmFyIF9fb2JqPXt9IgogKi8KCmZ1bmN0aW9uIF9fZnVuYygpewogICAgYXJndW1lbnRzWzBdWyJFIl09Mi43NDsKfQoKdmFyIF9fb2JqPXt9OwoKX19mdW5jKF9fb2JqKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fb2JqLkUgIT09IDIuNzQpIHsKCSRFUlJPUignIzE6IF9fb2JqLkUgPT09IDIuNzQuIEFjdHVhbDogX19vYmouRSA9PT0nK19fb2JqLkUpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBDbG9zdXJlcyBhcmUgYWRtaXR0ZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjFfQTVfVDEuanMKICogQGRlc2NyaXB0aW9uIFNvcnRpbmcgd2l0aCBjbG9zdXJlCiAqLwoKdmFyIF9fYXJyID0gWzQsMywyLDEsNCwzLDIsMSw0LDMsMiwxXTsKLy9Tb3J0IHVzZXMgY2xvc3VyZQovLwpfX2Fyci5zb3J0KAoJZnVuY3Rpb24oeCx5KSB7IAoJCWlmICh4Pnkpe3JldHVybiAtMTt9IAoJCWlmICh4PHkpe3JldHVybiAxO30gCgkJaWYgKHg9PXkpe3JldHVybiAwO30gCgl9Cik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Fyci50b1N0cmluZygpICE9PSBbNCw0LDQsMywzLDMsMiwyLDIsMSwxLDFdLnRvU3RyaW5nKCkpIHsKCSRFUlJPUignIzE6IF9fYXJyLnRvU3RyaW5nKCkgPT09IFs0LDQsNCwzLDMsMywyLDIsMiwxLDEsMV0udG9TdHJpbmcoKS4gQWN0dWFsOiBfX2Fyci50b1N0cmluZygpID09PScrX19hcnIudG9TdHJpbmcoKSk7Cn0KCi8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgCgo=","commentary":"Closures are admitted","description":"Sorting with closure","path":"TestCases/ch13/13.2/S13.2.1_A5_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBDbG9zdXJlcyBhcmUgYWRtaXR0ZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjFfQTVfVDIuanMKICogQGRlc2NyaXB0aW9uIFJldHVybmluZyBhIGZ1bmN0aW9uIHRoYXQgYXBwcm94aW1hdGVzIHRoZSBkZXJpdmF0aXZlIG9mIGYKICogdXNpbmcgYW4gaW50ZXJ2YWwgb2YgZHgsIHdoaWNoIHNob3VsZCBiZSBhcHByb3ByaWF0ZWx5IHNtYWxsCiAqLwoKLy8gUmV0dXJuIGEgZnVuY3Rpb24gdGhhdCBhcHByb3hpbWF0ZXMgdGhlIGRlcml2YXRpdmUgb2YgZgovLyB1c2luZyBhbiBpbnRlcnZhbCBvZiBkeCwgd2hpY2ggc2hvdWxkIGJlIGFwcHJvcHJpYXRlbHkgc21hbGwuCmZ1bmN0aW9uIGRlcml2YXRpdmUoZiwgZHgpIHsKICAgIHJldHVybiBmdW5jdGlvbih4KSB7CiAgICAgIHJldHVybiAoZih4ICsgZHgpIC0gZih4KSkgLyBkeDsKICAgIH07Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKE1hdGguYWJzKGRlcml2YXRpdmUoTWF0aC5zaW4sIDAuMDAwMSkoMCkgLSBkZXJpdmF0aXZlKE1hdGguc2luLCAwLjAwMDEpKDIqTWF0aC5QSSkpID49IDEvNjU1MzYuMCkgewoJJEVSUk9SKCcjMTogTWF0aC5hYnMoZGVyaXZhdGl2ZShNYXRoLnNpbiwgMC4wMDAxKSgwKSAtIGRlcml2YXRpdmUoTWF0aC5zaW4sIDAuMDAwMSkoMipNYXRoLlBJKSkgPD0gMS82NTUzNi4wJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBQcmltaXRpdmUgdHlwZXMgYXJlIHBhc3NlZCBieSB2YWx1ZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNl9UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiZnVuY3Rpb24gX19mdW5jKGFyZzEsIGFyZzIpIgogKi8KCmZ1bmN0aW9uIF9fZnVuYyhhcmcxLCBhcmcyKXsKICAgIGFyZzErKzsKICAgIGFyZzIrPSJCQSI7Cn07Cgp2YXIgeD0xOwp5PTI7CnZhciBhPSJBQiIKYj0iU0FNIjsKCl9fZnVuYyh4LGEpOwpfX2Z1bmMoeSxiKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHghPT0xIHx8IHkhPT0yIHx8IGEhPT0iQUIiIHx8IGIhPT0iU0FNIikgewoJJEVSUk9SKCcjMTogeCA9PT0gMSBhbmQgeSA9PT0gMiBhbmQgYSA9PT0gIkFCIiBhbmQgYiA9PT0gIlNBTSIuIEFjdHVhbDogeCA9PT0nK3grJyBhbmQgeSA9PT0nK3krJyBhbmQgYSA9PT0nK2ErJyBhbmQgYiA9PT0nK2IpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBQcmltaXRpdmUgdHlwZXMgYXJlIHBhc3NlZCBieSB2YWx1ZQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BNl9UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiX19mdW5jID0gZnVuY3Rpb24oYXJnMSwgYXJnMikiCiAqLwoKX19mdW5jID0gZnVuY3Rpb24oYXJnMSwgYXJnMil7CiAgICBhcmcxKys7CiAgICBhcmcyKz0iQkEiOwp9OwoKdmFyIHg9MTsKeT0yOwp2YXIgYT0iQUIiCmI9IlNBTSI7CgpfX2Z1bmMoeCxhKTsKX19mdW5jKHksYik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh4IT09MSB8fCB5IT09MiB8fCBhIT09IkFCIiB8fCBiIT09IlNBTSIpIHsKCSRFUlJPUignIzE6IHggPT09IDEgYW5kIHkgPT09IDIgYW5kIGEgPT09ICJBQiIgYW5kIGIgPT09ICJTQU0iLiBBY3R1YWw6IHggPT09Jyt4KycgYW5kIHkgPT09Jyt5KycgYW5kIGEgPT09JythKycgYW5kIGIgPT09JytiKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgbnVsbC4gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiZnVuY3Rpb24gX19mdW5jKCkiCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB2YXIgeCA9IG51bGw7CiAgICByZXR1cm4geDsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnl7CiAgICB2YXIgeD1fX2Z1bmMoKTsKfSBjYXRjaChlKXsKICAgICRFUlJPUignIzE6IHZhciB4PV9fZnVuYygpIGRvZXMgbm90IGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uLiBBY3R1YWw6IGV4Y2VwdGlvbiBpcyAnK2UpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgbnVsbC4gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAidmFyIF9fZnVuYyA9IGZ1bmN0aW9uICgpIgogKi8KCnZhciBfX2Z1bmMgPSBmdW5jdGlvbiAoKXsKICAgIHZhciB4ID0gbnVsbDsKICAgIHJldHVybiB4Owp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCnRyeXsKICAgIHZhciB4PV9fZnVuYygpOwp9IGNhdGNoKGUpewogICAgJEVSUk9SKCcjMTogdmFyIHg9X19mdW5jKCkgZG9lcyBub3QgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24uIEFjdHVhbDogZXhjZXB0aW9uIGlzICcrZSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1QzLmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgbnVtYmVyLiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMoKSIKICovCgp2YXIgeDsKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB4ID0gMTsKICAgIHJldHVybiB4Owp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMKdHJ5IHsKCXg9eDsKCSRFUlJPUignIzA6ICJ4PXgiIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0gY2F0Y2ggKGUpIHt9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnl7CiAgICB2YXIgX194PV9fZnVuYygpOwp9IGNhdGNoKGUpewogICAgJEVSUk9SKCcjMTogdmFyIF9feD1fX2Z1bmMoKSBkb2VzIG5vdCBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbi4gQWN0dWFsOiBleGNlcHRpb24gaXMgJytlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9feCAhPT0gMSkgewoJJEVSUk9SKCcjMjogX194ID09PSAxLiBBY3R1YWw6IF9feCA9PT0nK19feCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmICh4ICE9PSAxKSB7CgkkRVJST1IoJyMzOiB4ID09PSAxLiBBY3R1YWw6IHggPT09Jyt4KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyByZXR1cm5lZCAgdGhlbiBSZXN1bHQudmFsdWUgaXMgcmV0dXJuZWQgdG9vCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E3X1Q0LmpzCiAqIEBkZXNjcmlwdGlvbiBSZXR1cm5pbmcgYm9vbGVhbi4gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiZnVuY3Rpb24gX19mdW5jKCkiCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICB2YXIgeCA9IHRydWU7CiAgICByZXR1cm4geDsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjCnRyeSB7Cgl4PXg7CgkkRVJST1IoJyMwOiAieD14IiBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7fQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5ewogICAgdmFyIF9feD1fX2Z1bmMoKQp9IGNhdGNoKGUpewogICAgJEVSUk9SKCcjMTogdmFyIF9feD1fX2Z1bmMoKSBkb2VzIG5vdCBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbi4gQWN0dWFsOiBleGNlcHRpb24gaXMgJytlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKCEoX194KSkgewoJJEVSUk9SKCcjMjogX194ID09PSB0cnVlLiBBY3R1YWw6IF9feCA9PT0nK19feCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCnRyeSB7Cgl4PXg7CgkkRVJST1IoJyMzOiAieD14IiBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7fQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyB0aHJvd24gdGhlbiBSZXN1bHQudmFsdWUgaXMgdGhyb3duIHRvbwogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BOF9UMS5qcwogKiBAZGVzY3JpcHRpb24gVGhyb3dpbmcgYW4gZXhjZXB0aW9uIHdpdGhpbiBhIGZ1bmN0aW9uIGJvZHkuIERlY2xhcmluZyBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMoKSIKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXsKICAgIHZhciB4ID0gMTsKICAgIHRocm93ICgiQ2F0Y2ggTWUgSWYgWW91IENhbiIpCiAgICByZXR1cm4geDsKfQoKdHJ5ewogICAgdmFyIHg9X19mdW5jKCkKICAgICRFUlJPUignIzA6IHZhciB4PV9fZnVuYygpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0gY2F0Y2goZSl7CiAgICBpZiAoZSAhPT0gIkNhdGNoIE1lIElmIFlvdSBDYW4iKSB7CiAgICAJJEVSUk9SKCcjMTogRXhjZXB0aW9uID09PSAiQ2F0Y2ggTWUgSWYgWW91IENhbiIuIEFjdHVhbDogZXhjZXB0aW9uID09PScrZSk7CiAgICB9Cn0KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgRiBpcyBjYWxsZWQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHRha2VuOgogKiAyLiBFdmFsdWF0ZSBGJ3MgRnVuY3Rpb25Cb2R5OwogKiBpZiBSZXN1bHQudHlwZSBpcyB0aHJvd24gdGhlbiBSZXN1bHQudmFsdWUgaXMgdGhyb3duIHRvbwogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BOF9UMi5qcwogKiBAZGVzY3JpcHRpb24gVGhyb3dpbmcgYW4gZXhjZXB0aW9uIHdpdGhpbiBhIGZ1bmN0aW9uIGJvZHkuIERlY2xhcmluZyBmdW5jdGlvbiB3aXRoICJ2YXIgX19mdW5jID0gZnVuY3Rpb24gKG1lc3NhZ2UpIgogKi8KCnZhciBDQVRDSF9NRV9JRl9ZT1VfQ0FOID0gdHJ1ZTsKCnZhciBfX2Z1bmMgPSBmdW5jdGlvbiAobWVzc2FnZSl7CiAgICB2YXIgeCA9IDE7CiAgICB0aHJvdyAobWVzc2FnZSkKICAgIHJldHVybiB4Owp9Cgp0cnl7CiAgICB2YXIgeD1fX2Z1bmMoQ0FUQ0hfTUVfSUZfWU9VX0NBTikKICAgICRFUlJPUignIzA6IHZhciB4PV9fZnVuYyhDQVRDSF9NRV9JRl9ZT1VfQ0FOKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoKGUpewogICAgaWYgKCFlKSB7CiAgICAJJEVSUk9SKCcjMTogRXhjZXB0aW9uID09PSB0cnVlLiBBY3R1YWw6IGV4Y2VwdGlvbiA9PT0nK2UpOwogICAgfQp9Cgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgaXMgY2FsbGVkLAogKiB0aGUgYm9keSBpcyBldmFsdWF0ZWQgYW5kIGlmIGV2YWx1YXRpb24gcmVzdWx0IGhhcyB0eXBlICJub3JtYWwiLCB0aGVuICJ1bmRlZmluZWQiIGlzIHJldHVybmVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E5LjFfVDEuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggImZ1bmN0aW9uIF9fZnVuYygpIiBhbmQgbm8gInJldHVybiIgaW4gdGhlIGZ1bmN0aW9uIGJvZHkKICovCgp2YXIgeDsKCmZ1bmN0aW9uIF9fZnVuYygpewogICAgeCA9IHRydWU7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygpICE9PSB1bmRlZmluZWQpIHsKCSRFUlJPUignIzE6IF9fZnVuYygpID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19mdW5jKCkgPT09JytfX2Z1bmMoKSk7Cn07Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoIXgpIHsKCSRFUlJPUignIzI6IHggPT09IHRydWUuIEFjdHVhbDogeCA9PT0gJyt4KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgaXMgY2FsbGVkLAogKiB0aGUgYm9keSBpcyBldmFsdWF0ZWQgYW5kIGlmIGV2YWx1YXRpb24gcmVzdWx0IGhhcyB0eXBlICJub3JtYWwiLCB0aGVuICJ1bmRlZmluZWQiIGlzIHJldHVybmVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4xX0E5LjFfVDIuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggInZhciBfX2Z1bmMgPSBmdW5jdGlvbigpIiBhbmQgbm8gInJldHVybiIgaW4gdGhlIGZ1bmN0aW9uIGJvZHkKICovCgp2YXIgeDsKCnZhciBfX2Z1bmMgPSBmdW5jdGlvbigpewogICAgeCA9IHRydWU7Cn0KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygpICE9PSB1bmRlZmluZWQpIHsKCSRFUlJPUignIzE6IF9fZnVuYygpID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19mdW5jKCkgPT09JytfX2Z1bmMoKSk7Cn07Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoIXgpIHsKCSRFUlJPUignIzI6IHggPT09IHRydWUuIEFjdHVhbDogeCA9PT0gJyt4KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgaXMgY2FsbGVkLAogKiB0aGUgYm9keSBpcyBldmFsdWF0ZWQgYW5kIGlmIGV2YWx1YXRpb24gcmVzdWx0IGhhcyB0eXBlICJyZXR1cm4iIGl0cyB2YWx1ZSBpcyBub3QgZGVmaW5lZCwgdGhlbiAidW5kZWZpbmVkIiBpcyByZXR1cm5lZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BOV9UMS5qcwogKiBAZGVzY3JpcHRpb24gVXNpbmcgInJldHVybiIgd2l0aCBubyBleHByZXNzaW9uLiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMoKSIKICovCgp2YXIgeDsgCgpmdW5jdGlvbiBfX2Z1bmMoKXsKICAgIHggPSAxOwogICAgcmV0dXJuOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoKSAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2Z1bmMoKSA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fZnVuYygpID09PScrX19mdW5jKCkpOwp9OwovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHghPT0xKSB7CgkkRVJST1IoJyMyOiB4ID09PSAxLiBBY3R1YWw6IHggPT09ICcreCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NhbGxdXSBwcm9wZXJ0eSBmb3IgYSBGdW5jdGlvbiBvYmplY3QgaXMgY2FsbGVkLAogKiB0aGUgYm9keSBpcyBldmFsdWF0ZWQgYW5kIGlmIGV2YWx1YXRpb24gcmVzdWx0IGhhcyB0eXBlICJyZXR1cm4iIGl0cyB2YWx1ZSBpcyBub3QgZGVmaW5lZCwgdGhlbiAidW5kZWZpbmVkIiBpcyByZXR1cm5lZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMV9BOV9UMi5qcwogKiBAZGVzY3JpcHRpb24gVXNpbmcgInJldHVybiIgd2l0aCBubyBleHByZXNzaW9uLiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJ2YXIgX19mdW5jID0gZnVuY3Rpb24oKSIKICovCgp2YXIgeDsgCgp2YXIgX19mdW5jID0gZnVuY3Rpb24oKXsKICAgIHggPSAxOwogICAgcmV0dXJuOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoKSAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2Z1bmMoKSA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fZnVuYygpID09PScrX19mdW5jKCkpOwp9OwovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHghPT0xKSB7CgkkRVJST1IoJyMyOiB4ID09PSAxLiBBY3R1YWw6IHggPT09ICcreCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBwb3NzaWJsZSBhcyBsb25nIGFzIHRoaXMuYW55X0Z1bmN0aW9uIGlzIGRlY2xhcmVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExMC5qcwogKiBAZGVzY3JpcHRpb24gQ2FsbGluZyBhIGZ1bmN0aW9uIGFzIGEgY29uc3RydWN0b3IgYWZ0ZXIgaXQgaGFzIGJlZW4gZGVjbGFyZWQKICovCgpmdW5jdGlvbiBGQUNUT1JZKCl7CiAgIHRoaXMuaWQgPSAwOwogICAKICAgdGhpcy5mdW5jID0gZnVuY3Rpb24gKCl7CiAgICAgIHJldHVybiA1OwogICB9CiAgIAogICB0aGlzLmlkID0gdGhpcy5mdW5jKCk7CiAgICAgCn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnkgewoJdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCk7Cn0gY2F0Y2ggKGUpIHsKCSRFUlJPUignIzE6IHZhciBvYmogPSBuZXcgRkFDVE9SWSgpIGRvZXMgbm90IGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uLiBBY3R1YWw6IEV4Y2VwdGlvbiBpcyAnK2UpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAob2JqLmlkICE9PSA1KSB7CgkkRVJST1IoJyMyOiBvYmouaWQgPT09IDUuIEFjdHVhbDogb2JqLmlkID09PScrb2JqLmlkKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBwb3NzaWJsZSBhcyBsb25nIGFzIHRoaXMuYW55X0Z1bmN0aW9uIGlzIGRlY2xhcmVkIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTExLmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCB3aXRoICJmdW5jdGlvbiBmdW5jKCkiCiAqLwoKZnVuY3Rpb24gRkFDVE9SWSgpewogICB0aGlzLmlkID0gMDsKICAgICAgCiAgIHRoaXMuaWQgPSB0aGlzLmZ1bmMoKTsKICAgCiAgIGZ1bmN0aW9uIGZ1bmMoKXsKICAgICAgcmV0dXJuICJpZF9zdHJpbmciOwogICB9CiAgICAgCn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnkgewoJdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCk7CgkkRVJST1IoJyMxOiB2YXIgb2JqID0gbmV3IEZBQ1RPUlkoKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoIChlKSB7fQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBwb3NzaWJsZSBhcyBsb25nIGFzIHRoaXMuYW55X0Z1bmN0aW9uIGlzIGRlY2xhcmVkIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTEyLmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCB3aXRoICJmdW5jdGlvbiBmdW5jKCkiCiAqLwoKZnVuY3Rpb24gRkFDVE9SWSgpewogICB0aGlzLmlkID0gMDsKICAgICAgCiAgIHRoaXMuaWQgPSBmdW5jKCk7CiAgIAogICBmdW5jdGlvbiBmdW5jKCl7CiAgICAgIHJldHVybiAiaWRfc3RyaW5nIjsKICAgfQogICAgIAp9Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5IHsKCXZhciBvYmogPSBuZXcgRkFDVE9SWSgpOwp9IGNhdGNoIChlKSB7CgkkRVJST1IoJyMxOiB2YXIgb2JqID0gbmV3IEZBQ1RPUlkoKSBkb2VzIG5vdCBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbi4gQWN0dWFsOiBFeGNlcHRpb24gaXMgJytlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKG9iai5pZCAhPT0gImlkX3N0cmluZyIpIHsKCSRFUlJPUignIzI6IG9iai5pZCA9PT0gImlkX3N0cmluZyIuIEFjdHVhbDogb2JqLmlkID09PScrb2JqLmlkKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBpbmFkbWlzc2libGUgYXMgbG9uZyBhcyB0aGlzLmFueV9GdW5jdGlvbiBpcyBkZWNsYXJlZCBieSBldmFsIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTEzLmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCBieSBldmFsCiAqLwoKZnVuY3Rpb24gRkFDVE9SWSgpewogICB0aGlzLmlkID0gMDsKICAgICAgCiAgIHRoaXMuaWQgPSBmdW5jKCk7CiAgIAogICBldmFsKCJmdW5jdGlvbiBmdW5jKCl7cmV0dXJuIFwiaWRfc3RyaW5nXCI7fSIpOwogICAgIAp9Ci8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5IHsKCXZhciBvYmogPSBuZXcgRkFDVE9SWSgpOwoJJEVSUk9SKCcjMTogdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCkgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKTsKfSBjYXRjaCAoZSkge30KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBpbmFkbWlzc2libGUgYXMgbG9uZyBhcyB0aGlzLmFueV9GdW5jdGlvbiBpcyBkZWNsYXJlZCBieSBldmFsIGFuZCBjYWxsZWQKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTE0LmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBhZnRlciBpdCBoYXMgYmVlbiBkZWNsYXJlZCBieSBldmFsCiAqIEBub1N0cmljdAogKi8KCmZ1bmN0aW9uIEZBQ1RPUlkoKXsKICAgdGhpcy5pZCA9IDA7CgogICBldmFsKCJmdW5jdGlvbiBmdW5jKCl7cmV0dXJuIFwiaWRfc3RyaW5nXCI7fSIpOwoKICAgdGhpcy5pZCA9IGZ1bmMoKTsKCn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQp0cnkgewoJdmFyIG9iaiA9IG5ldyBGQUNUT1JZKCk7Cn0gY2F0Y2ggKGUpIHsKCSRFUlJPUignIzE6IHZhciBvYmogPSBuZXcgRkFDVE9SWSgpIGRvZXMgbm90IGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZCwKICogYW5kIHRoZSBvYmplY3QgY3JlYXRlZCBpbiB0aGUgZnVuY3Rpb24gaXMgcmV0dXJuZWQsIHRoZSBvYmplY3QgKGRlY2xhcmVkIHdpdGggInRoaXMiIHdpdGhpbiBhIGZ1bmN0aW9uKSB3aWxsIGJlIHN0cm9uZyBhbmQgaGVhbHRoeQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTVfVDEuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGRlY2xhcmVkIGF0IHRoZSBlbmQgb2YgdGhlIHByb2dyYW0gYW5kICJvYmoiIHByb3BlcnR5IGlzIGRlY2xhcmVkIHdpdGggInZhciBvYmogPSB7fSIKICovCgp2YXIgX19vYmogPSBuZXcgX19GQUNUT1JZKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2Ygb2JqICE9PSAidW5kZWZpbmVkIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIG9iaiA9PT0gInVuZGVmaW5lZCIuIEFjdHVhbDogdHlwZW9mIG9iaiA9PT0nK3R5cGVvZiBvYmopOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19vYmoucHJvcCAhPT0gIkEiKSB7CgkkRVJST1IoJyMyOiBfX29iai5wcm9wID09PSAiQSIuIEFjdHVhbDogX19vYmoucHJvcCA9PT0nK19fb2JqLnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19vYmouc2xvdC5wcm9wICE9PTEpIHsKCSRFUlJPUignIzM6IF9fb2JqLnNsb3QucHJvcCA9PT0xLiBBY3R1YWw6IF9fb2JqLnNsb3QucHJvcCA9PT0nK19fb2JqLnNsb3QucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXsKICAgIHRoaXMucHJvcCA9IDE7CiAgICB2YXIgb2JqID0ge307CiAgICBvYmoucHJvcCA9ICJBIjsKICAgIG9iai5zbG90ID0gdGhpczsKICAgIHJldHVybiBvYmo7Cn0KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZCwKICogYW5kIHRoZSBvYmplY3QgY3JlYXRlZCBpbiB0aGUgZnVuY3Rpb24gaXMgcmV0dXJuZWQsIHRoZSBvYmplY3QgKGRlY2xhcmVkIHdpdGggInRoaXMiIHdpdGhpbiBhIGZ1bmN0aW9uKSB3aWxsIGJlIHN0cm9uZyBhbmQgaGVhbHRoeQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTVfVDIuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGRlY2xhcmVkIGF0IHRoZSBlbmQgb2YgdGhlIHByb2dyYW0gYW5kICJvYmoiIHByb3BlcnR5IGlzIGRlY2xhcmVkIHdpdGggIm9iaiA9IHt9IgogKi8KCnZhciBfX29iaiA9IG5ldyBfX0ZBQ1RPUlkoKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKG9iai5wcm9wICE9PSAiQSIpIHsKCSRFUlJPUignIzE6IG9iai5wcm9wID09PSAiQSIuIEFjdHVhbDogb2JqLnByb3AgPT09JytvYmoucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX29iai5wcm9wICE9PSAiQSIpIHsKCSRFUlJPUignIzI6IF9fb2JqLnByb3AgPT09ICJBIi4gQWN0dWFsOiBfX29iai5wcm9wID09PScrX19vYmoucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmIChfX29iai5zbG90LnByb3AgIT09MSkgewoJJEVSUk9SKCcjMzogX19vYmouc2xvdC5wcm9wID09PSAxLiBBY3R1YWw6IF9fb2JqLnNsb3QucHJvcCA9PT0nK19fb2JqLnNsb3QucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXsKICAgIHRoaXMucHJvcCA9IDE7CiAgICBvYmogPSB7fTsKICAgIG9iai5wcm9wID0gIkEiOwogICAgb2JqLnNsb3QgPSB0aGlzOwogICAgcmV0dXJuIG9iajsKfQoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZCwKICogYW5kIHRoZSBvYmplY3QgY3JlYXRlZCBpbiB0aGUgZnVuY3Rpb24gaXMgcmV0dXJuZWQsIHRoZSBvYmplY3QgKGRlY2xhcmVkIHdpdGggInRoaXMiIHdpdGhpbiBhIGZ1bmN0aW9uKSB3aWxsIGJlIHN0cm9uZyBhbmQgaGVhbHRoeQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTVfVDMuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGRlY2xhcmVkIGF0IHRoZSBlbmQgb2YgdGhlIHByb2dyYW0gYW5kICJvYmoiIHByb3BlcnR5IGlzIGRlY2xhcmVkIHdpdGggInZhciBvYmogPSB7fSIKICovCgpfX0ZBQ1RPUlkgPSBmdW5jdGlvbiAoKXsKICAgIHRoaXMucHJvcCA9IDE7CiAgICB2YXIgb2JqID0ge307CiAgICBvYmoucHJvcCA9ICJBIjsKICAgIG9iai5zbG90ID0gdGhpczsKICAgIHJldHVybiBvYmo7Cn0KCl9fb2JqID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIG9iaiAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBvYmogPT09ICJ1bmRlZmluZWQiLiBBY3R1YWw6IHR5cGVvZiBvYmogPT09Jyt0eXBlb2Ygb2JqKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLnByb3AgIT09ICJBIikgewoJJEVSUk9SKCcjMjogX19vYmoucHJvcCA9PT0gIkEiLiBBY3R1YWw6IF9fb2JqLnByb3AgPT09JytfX29iai5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKF9fb2JqLnNsb3QucHJvcCAhPT0xKSB7CgkkRVJST1IoJyMzOiBfX29iai5zbG90LnByb3AgPT09MS4gQWN0dWFsOiBfX29iai5zbG90LnByb3AgPT09JytfX29iai5zbG90LnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZCwKICogYW5kIHRoZSBvYmplY3QgY3JlYXRlZCBpbiB0aGUgZnVuY3Rpb24gaXMgcmV0dXJuZWQsIHRoZSBvYmplY3QgKGRlY2xhcmVkIHdpdGggInRoaXMiIHdpdGhpbiBhIGZ1bmN0aW9uKSB3aWxsIGJlIHN0cm9uZyBhbmQgaGVhbHRoeQogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTVfVDQuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGRlY2xhcmVkIGF0IHRoZSBlbmQgb2YgdGhlIHByb2dyYW0gYW5kICJvYmoiIHByb3BlcnR5IGlzIGRlY2xhcmVkIHdpdGggIm9iaiA9IHt9IgogKi8KCl9fRkFDVE9SWSA9IGZ1bmN0aW9uKCl7CiAgICB0aGlzLnByb3AgPSAxOwogICAgb2JqID0ge307CiAgICBvYmoucHJvcCA9ICJBIjsKICAgIG9iai5zbG90ID0gdGhpczsKICAgIHJldHVybiBvYmo7Cn0KCl9fb2JqID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAob2JqLnByb3AgIT09ICJBIikgewoJJEVSUk9SKCcjMTogb2JqLnByb3AgPT09ICJBIi4gQWN0dWFsOiBvYmoucHJvcCA9PT0nK29iai5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLnByb3AgIT09ICJBIikgewoJJEVSUk9SKCcjMjogX19vYmoucHJvcCA9PT0gIkEiLiBBY3R1YWw6IF9fb2JqLnByb3AgPT09JytvYmoucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmIChfX29iai5zbG90LnByb3AgIT09MSkgewoJJEVSUk9SKCcjMzogX19vYmouc2xvdC5wcm9wID09PTEuIEFjdHVhbDogX19vYmouc2xvdC5wcm9wID09PScrb2JqLnNsb3QucHJvcCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gd2l0aGluIGEgbmV3IHN0YXRlbWVudCBpcyBhZG1pdHRlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTZfVDEuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nICJpcyBfX29iaiA9IG5ldyBmdW5jdGlvbiBfX2Z1bmMoKXt0aGlzLnByb3A9MTt9IiBhcyBGdW5jdGlvbkV4cHJlc3Npb24KICovCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19mdW5jICE9PSAidW5kZWZpbmVkIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gInVuZGVmaW5lZCIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fb2JqID0gbmV3IGZ1bmN0aW9uIF9fZnVuYygpe3RoaXMucHJvcD0xO307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX29iai5wcm9wICE9PSAxKSB7CgkkRVJST1IoJyMyOiBfX29iai5wcm9wID09PSAxLiBBY3R1YWw6IF9fb2JqLnByb3AgPT09JytfX29iai5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzUKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJ1bmRlZmluZWQiKSB7CgkkRVJST1IoJyM1OiB0eXBlb2YgX19mdW5jID09PSAidW5kZWZpbmVkIi4gQWN0dWFsOiB0eXBlb2YgX19mdW5jID09PScrdHlwZW9mIF9fZnVuYyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gd2l0aGluIGEgbmV3IHN0YXRlbWVudCBpcyBhZG1pdHRlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTZfVDIuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nICJ2YXIgX19vYmogPSBuZXcgZnVuY3Rpb24gX19mdW5jKGFyZyl7dGhpcy5wcm9wPWFyZzt9KDUpIiBhcyBGdW5jdGlvbkV4cHJlc3Npb24KICovCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19mdW5jICE9PSAidW5kZWZpbmVkIikgewoJJEVSUk9SKCcjMTogdHlwZW9mIF9fZnVuYyA9PT0gInVuZGVmaW5lZCIuIEFjdHVhbDogdHlwZW9mIF9fZnVuYyA9PT0nK3R5cGVvZiBfX2Z1bmMpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fb2JqID0gbmV3IGZ1bmN0aW9uIF9fZnVuYyhhcmcpe3RoaXMucHJvcD1hcmc7fSg1KTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLnByb3AgIT09IDUpIHsKCSRFUlJPUignIzI6IF9fb2JqLnByb3AgPT09IDUuIEFjdHVhbDogX19vYmoucHJvcCA9PT0nK19fb2JqLnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAodHlwZW9mIF9fZnVuYyAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzM6IHR5cGVvZiBfX2Z1bmMgPT09ICJ1bmRlZmluZWQiLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gd2l0aGluIGEgbmV3IHN0YXRlbWVudCBpcyBhZG1pdHRlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTZfVDMuanMKICogQGRlc2NyaXB0aW9uIFVzaW5nICJpcyBfX29iaiA9IG5ldyBmdW5jdGlvbiBfX2Z1bmMoYXJnKXt0aGlzLnByb3A9YXJnOyByZXR1cm4ge2ZlYXQ6ICsrYXJnfX0oNSkiIGFzIEZ1bmN0aW9uRXhwcmVzc2lvbgogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJ1bmRlZmluZWQiKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19mdW5jID09PSAidW5kZWZpbmVkIicpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fb2JqID0gbmV3IGZ1bmN0aW9uIF9fZnVuYyhhcmcpe3RoaXMucHJvcD1hcmc7IHJldHVybiB7ZmVhdDogKythcmd9fSg1KTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLnByb3AgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMjogX19vYmoucHJvcCA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fb2JqLnByb3AgPT09JytfX29iai5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKF9fb2JqLmZlYXQgIT09IDYpIHsKCSRFUlJPUignIzM6IF9fb2JqLmZlYXQgPT09IDYuIEFjdHVhbDogX19vYmouZmVhdCA9PT0nK19fb2JqLmZlYXQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNAppZiAodHlwZW9mIF9fZnVuYyAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzQ6IHR5cGVvZiBfX2Z1bmMgPT09ICJ1bmRlZmluZWQiLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gY29udGFpbmluZyAid2l0aCIgc3RhdGVtZW50IGlzIGFkbWl0dGVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExN19UMi5qcwogKiBAZGVzY3JpcHRpb24gVGhyb3dpbmcgYW4gZXhjZXB0aW9uIHdpdGhpbiAid2l0aCIgc3RhdGVtZW50CiAqLwoKdGhpcy5wMT0iYWxlcnQiOwoKX19vYmo9e3AxOjEsZ2V0UmlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gInJpZ2h0Ijt9fTsKCmdldFJpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuICJuYXByYXZvIjt9OwoKdHJ5IHsKCShmdW5jdGlvbigpewogICAgICAgIHdpdGgoX19vYmopewogICAgICAgICAgICBwMT0idzEiOwogICAgICAgICAgICBnZXRSaWdodD1mdW5jdGlvbigpe3JldHVybiBmYWxzZTt9CiAgICAgICAgICAgIHRocm93IHAxOwogICAgICAgIH0KICAgIH0pKCk7Cn0gY2F0Y2ggKGUpIHsKCXJlc3VrdCA9IHAxOwp9CgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAocDEhPT0iYWxlcnQiKSB7CgkkRVJST1IoJyMxOiBwMSA9PT0gImFsZXJ0Ii4gQWN0dWFsOiBwMT09PScrcDEpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoZ2V0UmlnaHQoKSE9PSJuYXByYXZvIikgewoJJEVSUk9SKCcjMjogZ2V0UmlnaHQoKSA9PT0gIm5hcHJhdm8iLiBBY3R1YWw6IGdldFJpZ2h0KCkgPT09ICcrZ2V0UmlnaHQoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmIChfX29iai5wMSE9PSJ3MSIpIHsKCSRFUlJPUignIzM6IF9fb2JqLnAxID09PSAidzEiLiBBY3R1YWw6IF9fb2JqLnAxID09PScrX19vYmoucDEpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNAppZiAoX19vYmouZ2V0UmlnaHQoKSE9PWZhbHNlKSB7CgkkRVJST1IoJyM0OiBfX29iai5nZXRSaWdodCgpID09PSBmYWxzZS4gQWN0dWFsOiBfX29iai5nZXRSaWdodCgpID09PSAnK19fb2JqLmdldFJpZ2h0KCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNQppZiAocmVzdWt0ICE9PSAiYWxlcnQiKSB7CgkkRVJST1IoJyM1OiByZXN1a3QgPT09ICJhbGVydCIuIEFjdHVhbDogcmVzdWt0ID09PScrcmVzdWt0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciByZXN1a3Q7CgoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gY29udGFpbmluZyAid2l0aCIgc3RhdGVtZW50IGlzIGFkbWl0dGVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExN19UMy5qcwogKiBAZGVzY3JpcHRpb24gSW4gdGhlIGNoZWNrIDQgd2UgcG9wdWxhdGUgZmllbGQgZ2V0UmlnaHQgaW4gX19vYmogb2JqZWN0IHNpbmNlIHZhciBnZXRSaWdodCBkZWNsYXJhdGlvbiBhZGRzIHZhcmlhYmxlIHRvIGZ1bmN0aW9uIHNjb3BlCiAqIGJ1dCBnZXRSaWdodCBpbiBzdGF0ZW1lbnQgcmVzb2x2ZXMgd2l0aGluIHdpdGgoX19vYmopIHNjb3BlIGFuZCBzZWFyY2hzIGdldFJpZ2h0IGluIF9fb2JqIGZpcnN0CiAqLwoKcDE9ImFsZXJ0IjsKCnRoaXMuX19vYmo9e3AxOjEsZ2V0UmlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gInJpZ2h0Ijt9fTsKCnZhciBnZXRSaWdodD1mdW5jdGlvbigpe3JldHVybiAibmFwcmF2byI7fTsKCnJlc3VrdD0oZnVuY3Rpb24oKXsKICAgIHdpdGgoX19vYmopewogICAgICAgIHAxPSJ3MSI7CiAgICAgICAgdmFyIGdldFJpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIGZhbHNlO307CiAgICAgICAgcmV0dXJuIHAxOwogICAgfQp9KSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAocDEhPT0iYWxlcnQiKSB7CgkkRVJST1IoJyMxOiBwMSA9PT0gImFsZXJ0Ii4gQWN0dWFsOiBwMT09PScrcDEpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoZ2V0UmlnaHQoKSE9PSJuYXByYXZvIikgewoJJEVSUk9SKCcjMjogZ2V0UmlnaHQoKSA9PT0gIm5hcHJhdm8iLiBBY3R1YWw6IGdldFJpZ2h0KCk9PT0nK2dldFJpZ2h0KCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19vYmoucDEhPT0idzEiKSB7CgkkRVJST1IoJyMzOiBfX29iai5wMSA9PT0gIncxIi4gQWN0dWFsOiBfX29iai5wMSA9PT0nK19fb2JqLnAxKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzQKaWYgKF9fb2JqLmdldFJpZ2h0KCkhPT1mYWxzZSkgewoJJEVSUk9SKCcjNDogX19vYmouZ2V0UmlnaHQoKSA9PT0gZmFsc2UuIEFjdHVhbDogX19vYmouZ2V0UmlnaHQoKT09PScrX19vYmouZ2V0UmlnaHQoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyM1CmlmIChyZXN1a3QgIT09ICJ3MSIpIHsKCSRFUlJPUignIzU6IHJlc3VrdCA9PT0gIncxIi4gQWN0dWFsOiByZXN1a3QgPT09JytyZXN1a3QpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIHJlc3VrdDsKCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDEuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBnbG9iYWwgc2NvcGUKICovCgp2YXIgYSA9IDE7Cgp2YXIgX19mdW5jPSBmdW5jdGlvbigpe3JldHVybiBhO307Cgp2YXIgX19vYmogPSB7YToyfTsKCndpdGggKF9fb2JqKQp7CiAgICByZXN1bHQgPSBfX2Z1bmMoKTsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAocmVzdWx0ICE9PSAxKSB7CgkkRVJST1IoJyMxOiByZXN1bHQgPT09IDEuIEFjdHVhbDogcmVzdWx0ID09PScrcmVzdWx0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDIuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBvYmplY3Qgc2NvcGUuIFVzaW5nICJ3aXRoIiBzdGF0ZW1lbnQKICovCgp2YXIgYSA9IDE7Cgp2YXIgX19vYmogPSB7YToyfTsKCndpdGggKF9fb2JqKQp7CiAgICByZXN1bHQgPSAoZnVuY3Rpb24oKXtyZXR1cm4gYTt9KSgpOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChyZXN1bHQgIT09IDIpIHsKCSRFUlJPUignIzE6IHJlc3VsdCA9PT0gMi4gQWN0dWFsOiByZXN1bHQgPT09JytyZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDMuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBvYmplY3Qgc2NvcGUgYW5kIHRoZW4gYW4gZXhjZXB0aW9uIGlzIHRocm93bgogKi8KCnZhciBhID0gMTsKCnZhciBfX29iaiA9IHthOjJ9OwoKdHJ5IHsKCXdpdGggKF9fb2JqKQogICAgewogICAgICAgIHZhciBfX2Z1bmMgPSBmdW5jdGlvbiAoKXtyZXR1cm4gYTt9OwogICAgICAgIHRocm93IDM7CiAgICB9Cn0gY2F0Y2ggKGUpIHsKCTsKfQoKcmVzdWx0ID0gX19mdW5jKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChyZXN1bHQgIT09IDIpIHsKCSRFUlJPUignIzE6IHJlc3VsdCA9PT0gMi4gQWN0dWFsOiByZXN1bHQgPT09JytyZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDQuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBoaWVyYXJjaGljYWwgb2JqZWN0IHNjb3BlIGFuZCB0aGVuIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24KICovCgp2YXIgYSA9IDE7Cgp2YXIgX19vYmogPSB7YToyLF9fb2JqOnthOjN9fTsKCnRyeSB7Cgl3aXRoIChfX29iaikKICAgIHsKICAgICAgICB3aXRoKF9fb2JqKXsKICAgICAgICAgICAgdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCl7cmV0dXJuIGE7fTsKICAgICAgICAgICAgdGhyb3cgNTsKICAgICAgICB9CiAgICB9Cn0gY2F0Y2ggKGUpIHsKCTsKfQoKcmVzdWx0ID0gX19mdW5jKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChyZXN1bHQgIT09IDMpIHsKCSRFUlJPUignIzE6IHJlc3VsdCA9PT0gMy4gQWN0dWFsOiByZXN1bHQgPT09JytyZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDUuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSBvYmplY3Qgc2NvcGUsIHRoZW4gYW4gZXhjZXB0aW9uIGlzIHRocm93biBhbmQgdGhlIG9iamVjdCBpcyBkZWxldGVkCiAqLwoKdmFyIGEgPSAxOwoKdmFyIF9fb2JqID0ge2E6Mn07Cgp3aXRoIChfX29iaikKewogICAgdHJ5IHsKICAgICAgICAKICAgIAl2YXIgX19mdW5jID0gZnVuY3Rpb24oKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIGE7CiAgICAgICAgfQogICAgICAgIHRocm93IDM7CiAgICB9IGNhdGNoIChlKSB7CiAgICAJOwogICAgfQp9CgpkZWxldGUgX19vYmo7CgpyZXN1bHQgPSBfX2Z1bmMoKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHJlc3VsdCAhPT0gMikgewoJJEVSUk9SKCcjMTogcmVzdWx0ID09PSAyLiBBY3R1YWw6IHJlc3VsdCA9PT0nK3Jlc3VsdCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDYuanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIGluIHRoZSAib2JqZWN0LT5kby13aGlsZSIgc2NvcGUsIHRoZW4gdGhlIG9iamVjdCBpcyBkZWxldGVkIGFuZCBhbm90aGVyIG9iamVjdCB3aXRoIHRoZSBzYW1lIG5hbWUgaXMgZGVjbGFyZWQKICovCgp2YXIgYSA9IDE7Cgp2YXIgX19vYmogPSB7YToyfTsKCndpdGggKF9fb2JqKQp7CiAgICBkbyB7CiAgICAgICAgdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBhOwogICAgICAgIH0KICAgIH0gd2hpbGUoMCk7Cn0KCmRlbGV0ZSBfX29iajsKCnZhciBfX29iaiA9IHthOjN9OwoKd2l0aCAoX19vYmopCnsKICAgIHJlc3VsdCA9IF9fZnVuYygpOwp9CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChyZXN1bHQgIT09IDIpIHsKCSRFUlJPUignIzE6IHJlc3VsdCA9PT0gMi4gQWN0dWFsOiByZXN1bHQgPT09JytyZXN1bHQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoKCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBGdW5jdGlvbidzIHNjb3BlIGNoYWluIGlzIHN0YXJ0ZWQgd2hlbiBpdCBpcyBkZWNsYXJlZAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BMTlfVDguanMKICogQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGlzIGRlY2xhcmVkIG11bHRpcGx5IHRpbWVzCiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMAppZiAodHlwZW9mIF9fZnVuYyAhPT0gInVuZGVmaW5lZCIpIHsKCSRFUlJPUignIzA6IHR5cGVvZiBfX2Z1bmMgPT09ICJ1bmRlZmluZWQiLiBBY3R1YWw6IHR5cGVvZiBfX2Z1bmMgPT09Jyt0eXBlb2YgX19mdW5jKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBhID0gMSwgYiA9ICJhIjsKCnZhciBfX29iaiA9IHthOjJ9OwoKd2l0aCAoX19vYmopCnsKICAgIHdoaWxlKDEpewogICAgICAgIHZhciAgX19mdW5jID0gZnVuY3Rpb24oKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIGE7CiAgICAgICAgfTsKICAgICAgICBicmVhazsKICAgIH0KfQoKZGVsZXRlIF9fb2JqOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jKCkgIT09IDIpIHsKCSRFUlJPUignIzE6IF9fZnVuYygpID09PSAyLiBBY3R1YWw6IF9fZnVuYygpID09PScrX19mdW5jKCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKdmFyIF9fb2JqID0ge2E6MyxiOiJiIn07Cgp3aXRoIChfX29iaikKewogICAgdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gYjsKICAgIH0KfQoKZGVsZXRlIF9fb2JqOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19mdW5jKCkhPT0iYiIpIHsKCSRFUlJPUignIzI6IF9fZnVuYygpPT09ImIiLiBBY3R1YWw6IF9fZnVuYygpPT09JytfX2Z1bmMoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgp3aXRoICh7YTo5OSxiOiJjIn0pCnsKICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgLy9DSEVDSyMzCiAgICBpZiAoX19mdW5jKCkgIT09ICJiIikgewogICAgCSRFUlJPUignIzM6IF9fZnVuYygpPT09ImIiLiBBY3R1YWw6IF9fZnVuYygpPT09JytfX2Z1bmMoKSk7CiAgICB9CiAgICAvLwogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCn0KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBTaW5jZSBhIGZ1bmN0aW9uIGlzIGFuIG9iamVjdCwgaXQgbWlnaHQgYmUgc2V0IHRvIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgYSBuZXcgY3JlYXRlZCBvYmplY3QgdGhyb3VnaCBbW0NvbnN0cnVjdF1dIHByb3BlcnR5CiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMoKSIKICovCgp2YXIgX19NT05TVEVSPSJtb25zdGVyIjsKdmFyIF9fUFJFREFUT1I9InByZWRhdG9yIjsKCmZ1bmN0aW9uIF9fUFJPVE8oKXt9OwoKdHJ5ewogICAgX19QUk9UTy50eXBlPV9fTU9OU1RFUjsKfQpjYXRjaChlKXsKICAgICRFUlJPUignIzA6IF9fUFJPVE8udHlwZT1fX01PTlNURVIgZG9lcyBub3QgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKQp9CgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXt0aGlzLm5hbWU9X19QUkVEQVRPUn07CgpfX0ZBQ1RPUlkucHJvdG90eXBlPV9fUFJPVE87Cgp2YXIgX19tb25zdGVyID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIShfX1BST1RPLmlzUHJvdG90eXBlT2YoX19tb25zdGVyKSkpIHsKCSRFUlJPUignIzE6IF9fUFJPVE8uaXNQcm90b3R5cGVPZihfX21vbnN0ZXIpIG11c3QgYmUgdHJ1ZScpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19tb25zdGVyLnR5cGUgIT09X19NT05TVEVSKSB7CgkkRVJST1IoJyMyOiBfX21vbnN0ZXIudHlwZSA9PT1fX01PTlNURVIuIEFjdHVhbDogX19tb25zdGVyLnR5cGUgPT09JytfX21vbnN0ZXIudHlwZSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBTaW5jZSBhIGZ1bmN0aW9uIGlzIGFuIG9iamVjdCwgaXQgbWlnaHQgYmUgc2V0IHRvIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgYSBuZXcgY3JlYXRlZCBvYmplY3QgdGhyb3VnaCBbW0NvbnN0cnVjdF1dIHByb3BlcnR5CiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0ExX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJ2YXIgX19QUk9UTyA9IGZ1bmN0aW9uKCkiCiAqLwoKdmFyIF9fTU9OU1RFUj0ibW9uc3RlciI7CnZhciBfX1BSRURBVE9SPSJwcmVkYXRvciI7Cgp2YXIgX19QUk9UTyA9IGZ1bmN0aW9uKCl7fTsKCnRyeXsKICAgIF9fUFJPVE8udHlwZT1fX01PTlNURVI7Cn0KY2F0Y2goZSl7CiAgICAkRkFJTCgnIzA6IF9fUFJPVE8udHlwZT1fX01PTlNURVIgZG9lcyBub3QgbGVhZCB0byB0aHJvd2luZyBleGNlcHRpb24nKQp9Cgp2YXIgX19GQUNUT1JZID0gZnVuY3Rpb24oKXt0aGlzLm5hbWU9X19QUkVEQVRPUn07CgpfX0ZBQ1RPUlkucHJvdG90eXBlPV9fUFJPVE87Cgp2YXIgX19tb25zdGVyID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIShfX1BST1RPLmlzUHJvdG90eXBlT2YoX19tb25zdGVyKSkpIHsKCSRFUlJPUignIzE6IF9fUFJPVE8uaXNQcm90b3R5cGVPZihfX21vbnN0ZXIpIG11c3QgYmUgdHJ1ZScpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19tb25zdGVyLnR5cGUgIT09X19NT05TVEVSKSB7CgkkRVJST1IoJyMyOiBfX21vbnN0ZXIudHlwZSA9PT1fX01PTlNURVIuIEFjdHVhbDogX19tb25zdGVyLnR5cGUgPT09JytfX21vbnN0ZXIudHlwZSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBTaW5jZSBhIGZ1bmN0aW9uIGlzIGFuIG9iamVjdCwgaXQgbWlnaHQgYmUgc2V0IHRvIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgYSBuZXcgY3JlYXRlZCBvYmplY3QgdGhyb3VnaCBbW0NvbnN0cnVjdF1dIHByb3BlcnR5LAogKiBidXQgW1tjYWxsXV0gcHJvcGVydHkgbXVzdCBmYWlsIHdpdGggVHlwZUVycm9yIGVycm9yCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0EyLmpzCiAqIEBkZXNjcmlwdGlvbiBUcnlpbmcgdG8gW1tjYWxsXV0gdGhpcyBmdW5jdGlvbgogKi8KCnZhciBfX1BMQU5UPSJmbG93ZXIiOwp2YXIgX19ST1NFPSJyb3NlIjsKCmZ1bmN0aW9uIF9fUFJPVE8oKXt9OwoKdHJ5ewogICAgX19QUk9UTy50eXBlPV9fUExBTlQ7Cn0KY2F0Y2goZSl7CiAgICAkRVJST1IoJyMwOiBfX1BST1RPLnR5cGU9X19QTEFOVCBkb2VzIG5vdCBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpCn0KCmZ1bmN0aW9uIF9fRkFDVE9SWSgpe3RoaXMubmFtZT1fX1JPU0V9OwoKX19GQUNUT1JZLnByb3RvdHlwZT1fX1BST1RPOwoKdmFyIF9fcm9zZSA9IG5ldyBfX0ZBQ1RPUlkoKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKdHJ5ewogICAgX19yb3NlKCk7CiAgICAkRVJST1IoJyMxOiBfX3Jvc2UoKSBsZWFkIHRvIHRocm93aW5nIGV4Y2VwdGlvbicpOwp9IGNhdGNoKGUpewogICAgaWYgKCEoZSBpbnN0YW5jZW9mIFR5cGVFcnJvcikpIHsKICAgIAkkRVJST1IoJyMyOiBFeGNlcHRpb24gVHlwZSBpcyBUeXBlRXJyb3IuIEFjdHVhbDogZXhjZXB0aW9uID09PScrZSk7CiAgICB9Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEl0IGdldHMgdGhlIHZhbHVlIG9mIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBGKERlbm90ZSBpdCBQUk9UT19WQUwpLgogKiBJZiBQUk9UT19WQUwgaXMgbm90IGFuIG9iamVjdCwgc2V0cyB0aGUgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QganVzdCBjcmVhdGVkCiAqICB0byB0aGUgb3JpZ2luYWwgT2JqZWN0IHByb3RvdHlwZSBvYmplY3QgYXMgZGVzY3JpYmVkIGluIDE1LjIuMy4xCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0EzX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX0ZBQ1RPUlkoKSIKICovCgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXt9OwpfX0ZBQ1RPUlkucHJvdG90eXBlPTE7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19GQUNUT1JZLnByb3RvdHlwZSAhPT0gJ251bWJlcicpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlID09PSBcJ251bWJlclwnLiBBY3R1YWw6IHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlID09PScrKHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgp2YXIgX19kZXZpY2UgPSBuZXcgX19GQUNUT1JZKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICghKE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihfX2RldmljZSkpKSB7CgkkRVJST1IoJyMyOiBPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoX19kZXZpY2UpID09PSB0cnVlJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEl0IGdldHMgdGhlIHZhbHVlIG9mIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBGKERlbm90ZSBpdCBQUk9UT19WQUwpLgogKiBJZiBQUk9UT19WQUwgaXMgbm90IGFuIG9iamVjdCwgc2V0cyB0aGUgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QganVzdCBjcmVhdGVkCiAqICB0byB0aGUgb3JpZ2luYWwgT2JqZWN0IHByb3RvdHlwZSBvYmplY3QgYXMgZGVzY3JpYmVkIGluIDE1LjIuMy4xCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0EzX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJ2YXIgX19GQUNUT1JZID0gZnVuY3Rpb24oKSIKICovCgp2YXIgX19GQUNUT1JZID0gZnVuY3Rpb24oKXt9OwpfX0ZBQ1RPUlkucHJvdG90eXBlPTE7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICh0eXBlb2YgX19GQUNUT1JZLnByb3RvdHlwZSAhPT0gJ251bWJlcicpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlID09PSBcJ251bWJlclwnLiBBY3R1YWw6IHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlID09PScrKHR5cGVvZiBfX0ZBQ1RPUlkucHJvdG90eXBlKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgp2YXIgX19kZXZpY2UgPSBuZXcgX19GQUNUT1JZKCk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICghKE9iamVjdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihfX2RldmljZSkpKSB7CgkkRVJST1IoJyMyOiBPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoX19kZXZpY2UpID09PSB0cnVlJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBGKERlbm90ZSBpdCBQUk9UT19WQUwpLgogKiBJZiBQUk9UT19WQUwgaXMgYW4gb2JqZWN0LCBzZXRzIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdCBqdXN0IGNyZWF0ZWQKICogdG8gdGhlIFBST1RPX1ZBTAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BNF9UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiZnVuY3Rpb24gX19GQUNUT1JZKCkiCiAqLwoKdmFyIF9fQ1VCRT0iY3ViZSI7CgpmdW5jdGlvbiBfX0ZBQ1RPUlkoKXsKfTsKX19GQUNUT1JZLnByb3RvdHlwZT17IHNoYXBlOl9fQ1VCRSwgcHJpbnRTaGFwZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYXBlO30gfTsKCnZhciBfX2RldmljZSA9IG5ldyBfX0ZBQ1RPUlkoKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZGV2aWNlLnByaW50U2hhcGUgPT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19kZXZpY2UucHJpbnRTaGFwZSAhPT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fZGV2aWNlLnByaW50U2hhcGUgPT09JytfX2RldmljZS5wcmludFNoYXBlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZGV2aWNlLnByaW50U2hhcGUoKSAhPT0gX19DVUJFKSB7CgkkRVJST1IoJyMyOiBfX2RldmljZS5wcmludFNoYXBlKCkgPT09IF9fQ1VCRS4gQWN0dWFsOiBfX2RldmljZS5wcmludFNoYXBlKCkgPT09JytfX2RldmljZS5wcmludFNoYXBlKCkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHRoZSBGKERlbm90ZSBpdCBQUk9UT19WQUwpLgogKiBJZiBQUk9UT19WQUwgaXMgYW4gb2JqZWN0LCBzZXRzIHRoZSBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdCBqdXN0IGNyZWF0ZWQKICogdG8gdGhlIFBST1RPX1ZBTAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BNF9UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiX19GQUNUT1JZID0gZnVuY3Rpb24oKSIKICovCgpfX0NVQkU9ImN1YmUiOwoKX19GQUNUT1JZID0gZnVuY3Rpb24oKXt9OwoKX19GQUNUT1JZLnByb3RvdHlwZT17IHNoYXBlOl9fQ1VCRSwgcHJpbnRTaGFwZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYXBlO30gfTsKCl9fZGV2aWNlID0gbmV3IF9fRkFDVE9SWSgpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19kZXZpY2UucHJpbnRTaGFwZSA9PT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2RldmljZS5wcmludFNoYXBlICE9PSB1bmRlZmluZWQuIEFjdHVhbDogX19kZXZpY2UucHJpbnRTaGFwZSA9PT0nK19fZGV2aWNlLnByaW50U2hhcGUpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19kZXZpY2UucHJpbnRTaGFwZSgpICE9PSBfX0NVQkUpIHsKCSRFUlJPUignIzI6IF9fZGV2aWNlLnByaW50U2hhcGUoKSA9PT0gX19DVUJFLiBBY3R1YWw6IF9fZGV2aWNlLnByaW50U2hhcGUoKSA9PT0nK19fZGV2aWNlLnByaW50U2hhcGUoKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdCBqdXN0IGNyZWF0ZWQgYXMgdGhlIHRoaXMgdmFsdWUgYW5kCiAqIHByb3ZpZGluZyB0aGUgYXJndW1lbnQgbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTVfVDEuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggImZ1bmN0aW9uIF9fRkFDVE9SWShhcmcxLCBhcmcyKSIKICovCgpfX1ZPTFVNRT04OwpfX1JFRD0icmVkIjsKX19JRD0xMjM0MjsKX19UT1A9MS4xOwpfX0JPVFRPTT0wLjA7Cl9fTEVGVD0wLjA7CgoKZnVuY3Rpb24gX19GQUNUT1JZKGFyZzEsIGFyZzIpewoJdGhpcy52b2x1bWU9X19WT0xVTUU7Cgljb2xvcj1fX1JFRDsKCXRoaXMuaWQ9YXJnMTsKCXRvcD1hcmcyOwoJdGhpcy5ib3R0b209YXJndW1lbnRzWzNdOwoJbGVmdD1hcmd1bWVudHNbNF07Cn07CgpfX2RldmljZSA9IG5ldyBfX0ZBQ1RPUlkoX19JRCwgX19UT1AsIF9fQk9UVE9NLCBfX0xFRlQpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19kZXZpY2UuY29sb3IgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19kZXZpY2UuY29sb3IgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiBfX2RldmljZS5jb2xvciA9PT0nK19fZGV2aWNlLmNvbG9yKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZGV2aWNlLnZvbHVtZSAhPT0gX19WT0xVTUUpIHsKCSRFUlJPUignIzI6IF9fZGV2aWNlLnZvbHVtZSA9PT0gX19WT0xVTUUuIEFjdHVhbDogX19kZXZpY2Uudm9sdW1lID09PScrX19kZXZpY2Uudm9sdW1lKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKF9fZGV2aWNlLnRvcCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMzOiBfX2RldmljZS50b3AgPT09IHVuZGVmaW5lZC4gQWN0dWFsOiBfX2RldmljZS50b3AgPT09JytfX2RldmljZS50b3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNAppZiAoX19kZXZpY2UuaWQgIT09IF9fSUQpIHsKCSRFUlJPUignIzQ6IF9fZGV2aWNlLmlkID09PSBfX0lELiBBY3R1YWw6IF9fZGV2aWNlLmlkID09PScrX19kZXZpY2UuaWQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNQppZiAoX19kZXZpY2UubGVmdCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyM1OiBfX2RldmljZS5sZWZ0ID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19kZXZpY2UubGVmdCA9PT0nK19fZGV2aWNlLmxlZnQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjNgppZiAoX19kZXZpY2UuYm90dG9tICE9PSBfX0JPVFRPTSkgewoJJEVSUk9SKCcjNjogX19kZXZpY2UuYm90dG9tID09PSBfX0JPVFRPTS4gQWN0dWFsOiBfX2RldmljZS5ib3R0b20gPT09JytfX2RldmljZS5ib3R0b20pOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIG5hdGl2ZSBFQ01BU2NyaXB0IG9iamVjdCBqdXN0IGNyZWF0ZWQgYXMgdGhlIHRoaXMgdmFsdWUgYW5kCiAqIHByb3ZpZGluZyB0aGUgYXJndW1lbnQgbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQTVfVDIuanMKICogQGRlc2NyaXB0aW9uIERlY2xhcmluZyBhIGZ1bmN0aW9uIHdpdGggIl9fRkFDVE9SWSA9IGZ1bmN0aW9uKGFyZzEsIGFyZzIpIgogKi8KCl9fVk9MVU1FPTg7Cl9fUkVEPSJyZWQiOwpfX0lEPTEyMzQyOwpfX1RPUD0xLjE7Cl9fQk9UVE9NPTAuMDsKX19MRUZUPTAuMDsKCgpfX0ZBQ1RPUlkgPSBmdW5jdGlvbihhcmcxLCBhcmcyKXsKCXRoaXMudm9sdW1lPV9fVk9MVU1FOwoJY29sb3I9X19SRUQ7Cgl0aGlzLmlkPWFyZzE7Cgl0b3A9YXJnMjsKCXRoaXMuYm90dG9tPWFyZ3VtZW50c1szXTsKCWxlZnQ9YXJndW1lbnRzWzRdOwp9OwoKX19kZXZpY2UgPSBuZXcgX19GQUNUT1JZKF9fSUQsIF9fVE9QLCBfX0JPVFRPTSwgX19MRUZUKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZGV2aWNlLmNvbG9yICE9PSB1bmRlZmluZWQpIHsKCSRFUlJPUignIzE6IF9fZGV2aWNlLmNvbG9yID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19kZXZpY2UuY29sb3IgPT09JytfX2RldmljZS5jb2xvcik7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2RldmljZS52b2x1bWUgIT09IF9fVk9MVU1FKSB7CgkkRVJST1IoJyMyOiBfX2RldmljZS52b2x1bWUgPT09IF9fVk9MVU1FLiBBY3R1YWw6IF9fZGV2aWNlLnZvbHVtZSA9PT0nK19fZGV2aWNlLnZvbHVtZSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMzCmlmIChfX2RldmljZS50b3AgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMzogX19kZXZpY2UudG9wID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19kZXZpY2UudG9wID09PScrX19kZXZpY2UudG9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzQKaWYgKF9fZGV2aWNlLmlkICE9PSBfX0lEKSB7CgkkRVJST1IoJyM0OiBfX2RldmljZS5pZCA9PT0gX19JRC4gQWN0dWFsOiBfX2RldmljZS5pZCA9PT0nK19fZGV2aWNlLmlkKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzUKaWYgKF9fZGV2aWNlLmxlZnQgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjNTogX19kZXZpY2UubGVmdCA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fZGV2aWNlLmxlZnQgPT09JytfX2RldmljZS5sZWZ0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzYKaWYgKF9fZGV2aWNlLmJvdHRvbSAhPT0gX19CT1RUT00pIHsKCSRFUlJPUignIzY6IF9fZGV2aWNlLmJvdHRvbSA9PT0gX19CT1RUT00uIEFjdHVhbDogX19kZXZpY2UuYm90dG9tID09PScrX19kZXZpY2UuYm90dG9tKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBub3QgT2JqZWN0IHRoZW4gcmV0dXJuIHBhc3NlZCBhcyB0aGlzIGludG8gW1tDYWxsXV0gb2JqZWN0CiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0E2X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJfX2Z1bmMgPSBmdW5jdGlvbihhcmcpIgogKi8KCl9fRk9PPSJmb29WYWx1ZSI7Cl9fQkFSPSJiYXJWYWx1ZSI7CgpfX2Z1bmMgPSBmdW5jdGlvbihhcmcpewoJdGhpcy5mb289YXJnOwogICAgcmV0dXJuIDA7Cgl0aGlzLmJhcj1hcmd1bWVudHNbMV07Cn07CgpfX29iaiA9IG5ldyBfX2Z1bmMoX19GT08sIF9fQkFSKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fb2JqLmZvbyE9PV9fRk9PKSB7CgkkRVJST1IoJyMxOiBfX29iai5mb28gPT09IF9fRk9PLiBBY3R1YWw6IF9fb2JqLmZvbz09PScrX19vYmouZm9vKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fb2JqLmJhciE9PXVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMjogX19vYmouYmFyID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19vYmouYmFyPT09JytfX29iai5iYXIpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBub3QgT2JqZWN0IHRoZW4gcmV0dXJuIHBhc3NlZCBhcyB0aGlzIGludG8gW1tDYWxsXV0gb2JqZWN0CiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0E2X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX2Z1bmMgKGFyZykiCiAqLwoKdmFyIF9fRk9PPSJmb29WYWx1ZSI7CnZhciBfX0JBUj0iYmFyVmFsdWUiOwoKZnVuY3Rpb24gX19mdW5jIChhcmcpewoJdGhpcy5mb289YXJnOwogICAgcmV0dXJuIHRydWU7Cgl0aGlzLmJhcj1hcmd1bWVudHNbMV07Cn07Cgp2YXIgX19vYmogPSBuZXcgX19mdW5jKF9fRk9PLCBfX0JBUik7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX29iai5mb28hPT1fX0ZPTykgewoJJEVSUk9SKCcjMTogX19vYmouZm9vID09PSBfX0ZPTy4gQWN0dWFsOiBfX29iai5mb289PT0nK19fb2JqLmZvbyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX29iai5iYXIhPT11bmRlZmluZWQpIHsKCSRFUlJPUignIzI6IF9fb2JqLmJhciA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fb2JqLmJhcj09PScrX19vYmouYmFyKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBPYmplY3QgdGhlbiByZXR1cm4gdGhpcyBqdXN0IGFzIG9idGFpbmVkIG9iamVjdAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BN19UMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aCAiYXMgX19mdW5jID0gZnVuY3Rpb24oYXJnKSIKICovCgp2YXIgX19GUlNUPSJvbmUiOwp2YXIgX19TQ05EPSJ0d28iOwoKZnVuY3Rpb24gX19mdW5jIChhcmcxLCBhcmcyKXsKCXRoaXMuZmlyc3Q9YXJnMTsKCXZhciBfX29iaj17c2Vjb25kOmFyZzJ9OwogICAgcmV0dXJuIF9fb2JqOwoJCn07Cgp2YXIgX19vYmpfXyA9IG5ldyBfX2Z1bmMoX19GUlNULCBfX1NDTkQpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19vYmpfXy5maXJzdCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX29ial9fLmZpcnN0ID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19vYmpfXy5maXJzdD09PScrX19vYmpfXy5maXJzdCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX29ial9fLnNlY29uZCAhPT0gX19TQ05EKSB7CgkkRVJST1IoJyMyOiBfX29ial9fLnNlY29uZCA9PT0gX19TQ05ELiBBY3R1YWw6IF9fb2JqX18uc2Vjb25kID09PScrX19vYmpfXy5zZWNvbmQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBPYmplY3QgdGhlbiByZXR1cm4gdGhpcyBqdXN0IGFzIG9idGFpbmVkIG9iamVjdAogKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuMl9BN19UMi5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgImZ1bmN0aW9uIGFzIGZ1bmN0aW9uIF9fZnVuYyAoYXJnKSIKICovCgpfX0ZSU1Q9Im9uZSI7Cl9fU0NORD0idHdvIjsKCl9fZnVuYyA9IGZ1bmN0aW9uKGFyZzEsIGFyZzIpewoJdGhpcy5maXJzdD1hcmcxOwoJdmFyIF9fb2JqPXtzZWNvbmQ6YXJnMn07CiAgICByZXR1cm4gX19vYmo7CgkKfTsKCl9fb2JqX18gPSBuZXcgX19mdW5jKF9fRlJTVCwgX19TQ05EKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fb2JqX18uZmlyc3QgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19vYmpfXy5maXJzdCA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9fb2JqX18uZmlyc3Q9PT0nK19fb2JqX18uZmlyc3QpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19vYmpfXy5zZWNvbmQgIT09IF9fU0NORCkgewoJJEVSUk9SKCcjMjogX19vYmpfXy5zZWNvbmQgPT09IF9fU0NORC4gQWN0dWFsOiBfX29ial9fLnNlY29uZCA9PT0nK19fb2JqX18uc2Vjb25kKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBGdW5jdGlvbiB0aGVuIHJldHVybiB0aGlzIGp1c3QgYXMgb2J0YWluZWQgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQThfVDEuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGNvbnRhaW5zICJyZXR1cm4iIGZvbGxvd2VkIGJ5IGRlY2xhcmF0aW9uIG9mIGFub3RoZXIgZnVuY3Rpb24KICovCgp2YXIgX19GUlNUPSJvbmUiOwp2YXIgX19TQ05EPSJ0d28iOwoKdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKGFyZzEsIGFyZzIpewoJdGhpcy5maXJzdD1hcmcxOwoJCglfX2d1bmMucHJvcD1hcmcyOwogICAgcmV0dXJuIF9fZ3VuYzsKICAgIC8vIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCiAgICBmdW5jdGlvbiBfX2d1bmMoYXJnKXtyZXR1cm4gKythcmd9OwoJCn07Cgp2YXIgX19pbnN0YW5jZSA9IG5ldyBfX2Z1bmMoX19GUlNULCBfX1NDTkQpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19pbnN0YW5jZS5maXJzdCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2luc3RhbmNlLmZpcnN0ID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19pbnN0YW5jZS5maXJzdCA9PT0nK19faW5zdGFuY2UuZmlyc3QpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19pbnN0YW5jZS5wcm9wIT09X19TQ05EKSB7CgkkRVJST1IoJyMyOiBfX2luc3RhbmNlLnByb3AgPT09IF9fU0NORC4gQWN0dWFsOiBfX2luc3RhbmNlLnByb3AgPT09JytfX2luc3RhbmNlLnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19pbnN0YW5jZSgxKSE9PSAyKSB7CgkkRVJST1IoJyMyOiBfX2luc3RhbmNlKDEpPT09IDIuIEFjdHVhbDogX19pbnN0YW5jZSgxKSA9PT0nK19faW5zdGFuY2UoMSkpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCg==","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBGdW5jdGlvbiB0aGVuIHJldHVybiB0aGlzIGp1c3QgYXMgb2J0YWluZWQgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQThfVDIuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGNvbnRhaW5zIGRlY2xhcmF0aW9uIG9mIGFub3RoZXIgZnVuY3Rpb24gZGVjbGFyZWQgYXMgYSB2YXJpYWJsZQogKi8KCnZhciBfX0ZSU1Q9Im9uZSI7CnZhciBfX1NDTkQ9InR3byI7Cgp2YXIgX19mdW5jID0gZnVuY3Rpb24oYXJnMSwgYXJnMil7Cgl0aGlzLmZpcnN0PWFyZzE7Cgl2YXIgX19ndW5jID0gZnVuY3Rpb24oYXJnKXtyZXR1cm4gYXJnKz0iQkEifTsKCV9fZ3VuYy5wcm9wPWFyZzI7CiAgICByZXR1cm4gX19ndW5jOwoJCn07Cgp2YXIgX19pbnN0YW5jZSA9IG5ldyBfX2Z1bmMoX19GUlNULCBfX1NDTkQpOwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19pbnN0YW5jZS5maXJzdCAhPT0gdW5kZWZpbmVkKSB7CgkkRVJST1IoJyMxOiBfX2luc3RhbmNlLmZpcnN0ID09PSB1bmRlZmluZWQuIEFjdHVhbDogX19pbnN0YW5jZS5maXJzdCA9PT0nK19faW5zdGFuY2UuZmlyc3QpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMgppZiAoX19pbnN0YW5jZS5wcm9wIT09X19TQ05EKSB7CgkkRVJST1IoJyMyOiBfX2luc3RhbmNlLnByb3AgPT09IF9fU0NORC4gQWN0dWFsOiBfX2luc3RhbmNlLnByb3AgPT09JytfX2luc3RhbmNlLnByb3ApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19pbnN0YW5jZSgiU0FNIikhPT0gIlNBTUJBIikgewoJJEVSUk9SKCcjMjogX19pbnN0YW5jZSgiU0FNIikgPT09ICJTQU1CQSIuIEFjdHVhbDogX19pbnN0YW5jZSgiU0FNIikgPT09JytfX2luc3RhbmNlKCJTQU0iKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoK","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIHRoZSBbW0NvbnN0cnVjdF1dIHByb3BlcnR5IGZvciBhIEZ1bmN0aW9uIG9iamVjdCBGIGlzIGNhbGxlZDoKICogQSBuZXcgbmF0aXZlIEVDTUFTY3JpcHQgb2JqZWN0IGlzIGNyZWF0ZWQuCiAqIEludm9rZSB0aGUgW1tDYWxsXV0gcHJvcGVydHkgb2YgRiwgcHJvdmlkaW5nIGp1c3QgY3JlYXRlZCBuYXRpdmUgRUNNQVNjcmlwdCBvYmplY3QgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIHByb3ZpZGluZyB0aGUgYXJndW1lbnQKICogbGlzdCBwYXNzZWQgaW50byBbW0NvbnN0cnVjdF1dIGFzIHRoZSBhcmd1bWVudCB2YWx1ZXMuCiAqIElmIFR5cGUoIFtbQ2FsbF1dIHJldHVybmVkKSBpcyBhbiBGdW5jdGlvbiB0aGVuIHJldHVybiB0aGlzIGp1c3QgYXMgb2J0YWluZWQgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yLjJfQThfVDMuanMKICogQGRlc2NyaXB0aW9uIENyZWF0aW5nIGEgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGNvbnRhaW5zIGRlY2xhcmF0aW9uIG9mIGFub3RoZXIgZnVuY3Rpb24gZGVmaW5lZCBieSB1c2luZyBGdW5jdGlvbi5jYWxsIG1ldGhvZAogKi8KCnZhciBfX0ZSU1Q9Im9uZSI7CnZhciBfX1NDTkQ9InR3byI7Cgp2YXIgX19mdW5jID0gZnVuY3Rpb24oYXJnMSwgYXJnMil7Cgl0aGlzLmZpcnN0PWFyZzE7Cgl2YXIgX19ndW5jID0gRnVuY3Rpb24uY2FsbCh0aGlzLCJhcmciLCJyZXR1cm4gKythcmc7Iik7CglfX2d1bmMucHJvcD1hcmcyOwogICAgcmV0dXJuIF9fZ3VuYzsKCQp9OwoKdmFyIF9faW5zdGFuY2UgPSBuZXcgX19mdW5jKF9fRlJTVCwgX19TQ05EKTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9faW5zdGFuY2UuZmlyc3QgIT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19pbnN0YW5jZS5maXJzdCA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6IF9faW5zdGFuY2UuZmlyc3QgPT09JytfX2luc3RhbmNlLmZpcnN0KTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9faW5zdGFuY2UucHJvcCE9PV9fU0NORCkgewoJJEVSUk9SKCcjMjogX19pbnN0YW5jZS5wcm9wID09PSBfX1NDTkQuIEFjdHVhbDogX19pbnN0YW5jZS5wcm9wID09PScrX19pbnN0YW5jZS5wcm9wKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzMKaWYgKF9faW5zdGFuY2UoMSkhPT0gMikgewoJJEVSUk9SKCcjMjogX19pbnN0YW5jZSgxKT09PSAyLiBBY3R1YWw6IF9faW5zdGFuY2UoMSkgPT09JytfX2luc3RhbmNlKDEpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvciBpcyBpbmFkbWlzc2libGUgYXMgbG9uZyBhcyB0aGlzLmFueV9GdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIGl0IGlzIGRlY2xhcmVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMi4yX0E5LmpzCiAqIEBkZXNjcmlwdGlvbiBDYWxsaW5nIGEgZnVuY3Rpb24gYXMgYSBjb25zdHJ1Y3RvcgogKi8KCmZ1bmN0aW9uIEZBQ1RPUlkoKXsKICAgdGhpcy5pZCA9IDA7CiAgIAogICB0aGlzLmlkID0gdGhpcy5mdW5jKCk7CiAgIAogICB0aGlzLmZ1bmMgPSBmdW5jdGlvbiAoKXsKICAgICAgcmV0dXJuIDU7CiAgIH0KICAKfQovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCnRyeSB7Cgl2YXIgb2JqID0gbmV3IEZBQ1RPUlkoKTsKCSRFUlJPUignIzE6IHZhciBvYmogPSBuZXcgRkFDVE9SWSgpIGxlYWQgdG8gdGhyb3dpbmcgZXhjZXB0aW9uJyk7Cn0gY2F0Y2ggKGUpIHt9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoK","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":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjIuM19BMS5qcwogKiBAZGVzY3JpcHRpb24gY2hlY2sgdGhhdCBhbGwgcG9pc29uaW5nIHVzZSB0aGUgW1tUaHJvd1R5cGVFcnJvcl1dCiAqIGZ1bmN0aW9uIG9iamVjdC4KICogQG9ubHlTdHJpY3QKICovCgoidXNlIHN0cmljdCI7CnZhciBwb2lzb24gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGZ1bmN0aW9uKCkge30sICdjYWxsZXInKS5nZXQ7CgppZiAodHlwZW9mIHBvaXNvbiAhPT0gJ2Z1bmN0aW9uJykgewogICRFUlJPUigiIzE6IEEgc3RyaWN0IGZ1bmN0aW9uJ3MgLmNhbGxlciBzaG91bGQgYmUgcG9pc29uZWQgd2l0aCBhIGZ1bmN0aW9uIik7Cn0KdmFyIHRocmV3ID0gbnVsbDsKdHJ5IHsKICBwb2lzb24oKTsKfSBjYXRjaCAoZXJyKSB7CiAgdGhyZXcgPSBlcnI7Cn0KaWYgKCF0aHJldyB8fCAhKHRocmV3IGluc3RhbmNlb2YgVHlwZUVycm9yKSkgewogICRFUlJPUigiIzI6IFBvaXNvbmVkIHByb3BlcnR5IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IiKTsKfQoKZnVuY3Rpb24gY2hlY2tQb2lzb24ob2JqLCBuYW1lKSB7CiAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwgbmFtZSk7CiAgaWYgKGRlc2MuZW51bWVyYWJsZSkgewogICAgJEVSUk9SKCIjMzogUG9pc29uZWQgIiArIG5hbWUgKyAiIHNob3VsZCBub3QgYmUgZW51bWVyYWJsZSIpOwogIH0KICBpZiAoZGVzYy5jb25maWd1cmFibGUpIHsKICAgICRFUlJPUigiIzQ6IFBvaXNvbmVkICIgKyBuYW1lICsgIiBzaG91bGQgbm90IGJlIGNvbmZpZ3VyYWJsZSIpOwogIH0KICBpZiAocG9pc29uICE9PSBkZXNjLmdldCkgewogICAgJEVSUk9SKCIjNTogIiArIG5hbWUgKyAiJ3MgZ2V0dGVyIG5vdCBwb2lzb25lZCB3aXRoIHNhbWUgcG9pc29uIik7CiAgfQogIGlmIChwb2lzb24gIT09IGRlc2Muc2V0KSB7CiAgICAkRVJST1IoIiM2OiAiICsgbmFtZSArICIncyBzZXR0ZXIgbm90IHBvaXNvbmVkIHdpdGggc2FtZSBwb2lzb24iKTsKICB9Cn0KCmNoZWNrUG9pc29uKGZ1bmN0aW9uKCkge30sICdjYWxsZXInKTsKY2hlY2tQb2lzb24oZnVuY3Rpb24oKSB7fSwgJ2FyZ3VtZW50cycpOwpjaGVja1BvaXNvbigoZnVuY3Rpb24oKSB7IHJldHVybiBhcmd1bWVudHM7IH0pKCksICdjYWxsZXInKTsKY2hlY2tQb2lzb24oKGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KSgpLCAnY2FsbGVlJyk7CmNoZWNrUG9pc29uKChmdW5jdGlvbigpIHt9KS5iaW5kKG51bGwpLCAnY2FsbGVyJyk7CmNoZWNrUG9pc29uKChmdW5jdGlvbigpIHt9KS5iaW5kKG51bGwpLCAnYXJndW1lbnRzJyk7Cgo=","commentary":"","description":"check that all poisoning use the [[ThrowTypeError]]\nfunction object.","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2.3_A1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBBICJwcm90b3R5cGUiIHByb3BlcnR5IGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBmb3IgZXZlcnkgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0ExX1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBVc2luZyAiZnVuY3Rpb24gX19mdW5jKCl7fSIgYXMgYSBGdW5jdGlvbkRlY2xhcmF0aW9uCiAqLwoKZnVuY3Rpb24gX19mdW5jKCl7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYy5wcm90b3R5cGUgPT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19mdW5jLnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBBICJwcm90b3R5cGUiIHByb3BlcnR5IGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBmb3IgZXZlcnkgZnVuY3Rpb24KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0ExX1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBVc2luZyAidmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCl7fSIgYXMgYSBGdW5jdGlvbkRlY2xhcmF0aW9uCiAqLwoKdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCl7fTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYy5wcm90b3R5cGUgPT09IHVuZGVmaW5lZCkgewoJJEVSUk9SKCcjMTogX19mdW5jLnByb3RvdHlwZSAhPT0gdW5kZWZpbmVkJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBOZXN0ZWQgZnVuY3Rpb24gYXJlIGFkbWl0dGVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMl9BMl9UMS5qcwogKiBAZGVzY3JpcHRpb24gTmVzdGluZyBsZXZlbCBpcyB0d28KICovCgp2YXIgX19KRURJPSJqZWRpIjsKCmZ1bmN0aW9uIF9fRlVOQygpewogICAgZnVuY3Rpb24gX19HVU5DKCl7CiAgICAgICAgcmV0dXJuIGFyZ3VtZW50c1swXTsKICAgIH07CiAgICAKICAgIHJldHVybiBfX0dVTkM7Cn07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX0ZVTkMoKShfX0pFREkpICE9PSBfX0pFREkpIHsKCSRFUlJPUignIzE6IF9fRlVOQygpKF9fSkVESSkgPT09IF9fSkVESS4gQWN0dWFsOiBfX0ZVTkMoKShfX0pFREkpID09PScrX19GVU5DKCkoX19KRURJKSk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"Nested function are admitted","description":"Nesting level is two","path":"TestCases/ch13/13.2/S13.2_A2_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBOZXN0ZWQgZnVuY3Rpb24gYXJlIGFkbWl0dGVkCiAqCiAqIEBwYXRoIGNoMTMvMTMuMi9TMTMuMl9BMl9UMi5qcwogKiBAZGVzY3JpcHRpb24gTmVzdGluZyBsZXZlbCBpcyB0aHJlZQogKi8KCnZhciBfX1JPQk9UPSJDM1BPIjsKCmZ1bmN0aW9uIF9fRlVOQygpewogICAgZnVuY3Rpb24gX19HVU5DKCl7CiAgICAgICAgcmV0dXJuIGFyZ3VtZW50c1swXTsKICAgIH07CiAgICBmdW5jdGlvbiBfX0hVTkMoKXsKICAgICAgICByZXR1cm4gX19HVU5DOwogICAgfTsKICAgIHJldHVybiBfX0hVTkM7Cn07CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX0ZVTkMoKSgpKF9fUk9CT1QpICE9PSBfX1JPQk9UKSB7CgkkRVJST1IoJyMxOiBfX0ZVTkMoKSgpKF9fUk9CT1QpID09PSBfX1JPQk9ULiBBY3R1YWw6IF9fRlVOQygpKCkoX19ST0JPVCkgPT09JytfX0ZVTkMoKSgpKF9fUk9CT1QpKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg==","commentary":"Nested function are admitted","description":"Nesting level is three","path":"TestCases/ch13/13.2/S13.2_A2_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIEZ1bmN0aW9uIG9iamVjdChGKSBpcyBjb25zdHJ1Y3RlZCB0aGUgbGVuZ3RoIHByb3BlcnR5IG9mIEYgaXMgc2V0IHRvIHRoZSBudW1iZXIgb2YgZm9ybWFsIHByb3BlcnRpZXMgc3BlY2lmaWVkIGluIEZvcm1hbFBhcmFtZXRlckxpc3QKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0EzLmpzCiAqIEBkZXNjcmlwdGlvbiBDcmVhdGluZyBmdW5jdGlvbnMgd2l0aCB2YXJpb3VzIEZvcm1hbFBhcmFtZXRlckxpc3QgYW5kIGNoZWNraW5nIHRoZWlyIGxlbmd0aHMKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoX19mdW5jLmxlbmd0aCAhPT0gMCkgewoJJEVSUk9SKCcjMTogX19mdW5jLmxlbmd0aCA9PT0gMC4gQWN0dWFsOiBfX2Z1bmMubGVuZ3RoID09PScrX19mdW5jLmxlbmd0aCk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBfX2d1bmMoYSxiLGMpe307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChfX2d1bmMubGVuZ3RoICE9PSAzKSB7CgkkRVJST1IoJyMyOiBfX2d1bmMubGVuZ3RoID09PSAzLiBBY3R1YWw6IF9fZ3VuYy5sZW5ndGggPT09JytfX2d1bmMubGVuZ3RoKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIEZ1bmN0aW9uIG9iamVjdChGKSBpcyBjb25zdHJ1Y3RlZCB0aGUgZm9sbG93aW5nIHN0ZXBzIGZyb20gOSB0byAxMSB0YWtlIHBsYWNlCiAqIDkuQ3JlYXRlIGEgbmV3IG9iamVjdCBhcyB3b3VsZCBiZSBjb25zdHJ1Y3RlZCBieSB0aGUgZXhwcmVzc2lvbiBuZXcgT2JqZWN0KCkuCiAqIDEwLiBTZXQgdGhlIGNvbnN0cnVjdG9yIHByb3BlcnR5IG9mIFJlc3VsdCg5KSB0byBGLiBUaGlzIHByb3BlcnR5IGlzIGdpdmVuIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9LgogKiAxMS4gU2V0IHRoZSAicHJvdG90eXBlIiBwcm9wZXJ0eSBvZiBGIHRvIFJlc3VsdCg5KS4KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0E0X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGVja2luZyBwcm90b3R5cGUsIHByb3RvdHlwZS5jb25zdHJ1Y3RvciBwcm9wZXJ0aWVzIGFuZCB7RG9udEVudW19IHByb3BlcnR5IG9mIGEgY29uc3RydWN0b3IuCiAqIFVzaW5nICJmdW5jdGlvbiBfX2Z1bmMoKXt9IiBhcyBhIEZ1bmN0aW9uRGVjbGFyYXRpb24KICovCgpmdW5jdGlvbiBfX2Z1bmMoKXt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZnVuYy5wcm90b3R5cGUgIT09ICdvYmplY3QnKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19mdW5jLnByb3RvdHlwZSA9PT0gXCdvYmplY3RcJy4gQWN0dWFsOiB0eXBlb2YgX19ndW5jLnByb3RvdHlwZSA9PT0nK3R5cGVvZiBfX2d1bmMucHJvdG90eXBlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYy5wcm90b3R5cGUuY29uc3RydWN0b3IgIT09IF9fZnVuYykgewoJJEVSUk9SKCcjMjogX19mdW5jLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9PT0gX19mdW5jLiBBY3R1YWw6IF9fZ3VuYy5wcm90b3R5cGUuY29uc3RydWN0b3IgPT09JytfX2d1bmMucHJvdG90eXBlLmNvbnN0cnVjdG9yKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBfX2NvbnN0cnVjdG9yX3dhc19fZW51bWVkOwoKZm9yIChfX3Byb3AgaW4gX19mdW5jLnByb3RvdHlwZSl7CiAgICBpZiAoX19wcm9wID0gJ2NvbnN0cnVjdG9yJykKICAgICAgICBfX2NvbnN0cnVjdG9yX3dhc19fZW51bWVkID0gdHJ1ZTsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCkgewoJJEVSUk9SKCcjMzogX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCA9PT0gZmFsc2UuIEFjdHVhbDogX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCA9PT0nK19fY29uc3RydWN0b3Jfd2FzX19lbnVtZWQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoKCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIEZ1bmN0aW9uIG9iamVjdChGKSBpcyBjb25zdHJ1Y3RlZCB0aGUgZm9sbG93aW5nIHN0ZXBzIGZyb20gOSB0byAxMSB0YWtlIHBsYWNlCiAqIDkuQ3JlYXRlIGEgbmV3IG9iamVjdCBhcyB3b3VsZCBiZSBjb25zdHJ1Y3RlZCBieSB0aGUgZXhwcmVzc2lvbiBuZXcgT2JqZWN0KCkuCiAqIDEwLiBTZXQgdGhlIGNvbnN0cnVjdG9yIHByb3BlcnR5IG9mIFJlc3VsdCg5KSB0byBGLiBUaGlzIHByb3BlcnR5IGlzIGdpdmVuIGF0dHJpYnV0ZXMgeyBEb250RW51bSB9LgogKiAxMS4gU2V0IHRoZSAicHJvdG90eXBlIiBwcm9wZXJ0eSBvZiBGIHRvIFJlc3VsdCg5KS4KICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0E0X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBDaGVja2luZyBwcm90b3R5cGUsIHByb3RvdHlwZS5jb25zdHJ1Y3RvciBwcm9wZXJ0aWVzIGFuZCB7RG9udEVudW19IHByb3BlcnR5IG9mIGEgY29uc3RydWN0b3IuCiAqIFVzaW5nICJ2YXIgX19ndW5jID0gZnVuY3Rpb24oKXt9IiBhcyBhIEZ1bmN0aW9uRGVjbGFyYXRpb24KICovCgp2YXIgX19ndW5jID0gZnVuY3Rpb24oKXt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIF9fZ3VuYy5wcm90b3R5cGUgIT09ICdvYmplY3QnKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgX19ndW5jLnByb3RvdHlwZSA9PT0gXCdvYmplY3RcJy4gQWN0dWFsOiB0eXBlb2YgX19ndW5jLnByb3RvdHlwZSA9PT0nK3R5cGVvZiBfX2d1bmMucHJvdG90eXBlKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZ3VuYy5wcm90b3R5cGUuY29uc3RydWN0b3IgIT09IF9fZ3VuYykgewoJJEVSUk9SKCcjMjogX19ndW5jLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9PT0gX19ndW5jLiBBY3R1YWw6IF9fZ3VuYy5wcm90b3R5cGUuY29uc3RydWN0b3IgPT09JytfX2d1bmMucHJvdG90eXBlLmNvbnN0cnVjdG9yKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCnZhciBfX2NvbnN0cnVjdG9yX3dhc19fZW51bWVkOwoKZm9yIChfX3Byb3AgaW4gX19ndW5jLnByb3RvdHlwZSl7CiAgICBpZiAoX19wcm9wID0gJ2NvbnN0cnVjdG9yJykKICAgICAgICBfX2NvbnN0cnVjdG9yX3dhc19fZW51bWVkID0gdHJ1ZTsKfQoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMwppZiAoX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCkgewoJJEVSUk9SKCcjMzogX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCA9PT0gZmFsc2UuIEFjdHVhbDogX19jb25zdHJ1Y3Rvcl93YXNfX2VudW1lZCA9PT0nK19fY29uc3RydWN0b3Jfd2FzX19lbnVtZWQpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgoKCgo=","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":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBXaGVuIEZ1bmN0aW9uIG9iamVjdChGKSBpcyBjb25zdHJ1Y3RlZAogKiB0aGUgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBGIGlzIHNldCB0byB0aGUgb3JpZ2luYWwgRnVuY3Rpb24gcHJvdG90eXBlIG9iamVjdCBhcyBzcGVjaWZpZWQgaW4gMTUuMy4zLjEKICoKICogQHBhdGggY2gxMy8xMy4yL1MxMy4yX0E1LmpzCiAqIEBkZXNjcmlwdGlvbiBGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZigpIGlzIHVzZWQKICovCgpmdW5jdGlvbiBfX2Z1bmMoKXt9OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAoIShGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihfX2Z1bmMpKSkgewoJJEVSUk9SKCcjMTogRnVuY3Rpb24ucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoX19mdW5jKScpOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCnZhciBfX2d1bmMgPSBmdW5jdGlvbigpe307CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmICghKEZ1bmN0aW9uLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKF9fZ3VuYykpKSB7CgkkRVJST1IoJyMxOiBGdW5jdGlvbi5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihfX2d1bmMpJyk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgoKCg==","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":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQTZfVDEuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJjYWxsZXIiIHBvaXNvbmluZyBwb2lzb25zCiAqIGdldE93blByb3BlcnR5RGVzY3JpcHRvciB0b28KICogQG9ubHlTdHJpY3QKICovCgoidXNlIHN0cmljdCI7Ck9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZnVuY3Rpb24oKXt9LCAnY2FsbGVyJyk7Cgo=","commentary":"","description":"check if \"caller\" poisoning poisons\ngetOwnPropertyDescriptor too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A6_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQTZfVDIuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJhcmd1bWVudHMiIHBvaXNvbmluZyBwb2lzb25zCiAqIGdldE93blByb3BlcnR5RGVzY3JpcHRvciB0b28KICogQG9ubHlTdHJpY3QKICovCgoidXNlIHN0cmljdCI7Ck9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZnVuY3Rpb24oKXt9LCAnYXJndW1lbnRzJyk7Cgo=","commentary":"","description":"check if \"arguments\" poisoning poisons\ngetOwnPropertyDescriptor too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A6_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQTdfVDEuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJjYWxsZXIiIHBvaXNvbmluZyBwb2lzb25zCiAqIGhhc093blByb3BlcnR5IHRvbwogKiBAb25seVN0cmljdAogKi8KCiJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKCl7fSkuaGFzT3duUHJvcGVydHkoJ2NhbGxlcicpOwoKCg==","commentary":"","description":"check if \"caller\" poisoning poisons\nhasOwnProperty too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A7_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQTdfVDIuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJhcmd1bWVudHMiIHBvaXNvbmluZyBwb2lzb25zCiAqIGhhc093blByb3BlcnR5IHRvbwogKiBAb25seVN0cmljdAogKi8KCiJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKCl7fSkuaGFzT3duUHJvcGVydHkoJ2FyZ3VtZW50cycpOwoKCg==","commentary":"","description":"check if \"arguments\" poisoning poisons\nhasOwnProperty too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A7_T2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQThfVDEuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJjYWxsZXIiIHBvaXNvbmluZyBwb2lzb25zCiAqICJpbiIgdG9vCiAqIEBvbmx5U3RyaWN0CiAqLwoKInVzZSBzdHJpY3QiOwonY2FsbGVyJyBpbiBmdW5jdGlvbigpIHt9OwoKCg==","commentary":"","description":"check if \"caller\" poisoning poisons\n\"in\" too","onlyStrict":"","path":"TestCases/ch13/13.2/S13.2_A8_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KCi8qKgogKiBAcGF0aCBjaDEzLzEzLjIvUzEzLjJfQThfVDIuanMKICogQGRlc2NyaXB0aW9uIGNoZWNrIGlmICJhcmd1bWVudHMiIHBvaXNvbmluZyBwb2lzb25zCiAqICJpbiIgdG9vCiAqIEBvbmx5U3RyaWN0CiAqLwoKInVzZSBzdHJpY3QiOwonYXJndW1lbnRzJyBpbiBmdW5jdGlvbigpIHt9OwoKCg==","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