{"testsCollection":{"name":"Chapter - ch14","numTests":"24","tests":[{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkV4cHJlc3Npb24gbXVzdCBiZSBsb2NhbGVkIGluIGEgcmVhY2hlYWJsZSBmcmFnbWVudCBvZiB0aGUgcHJvZ3JhbQogKgogKiBAcGF0aCBjaDE0L1MxNF9BMS5qcwogKiBAZGVzY3JpcHRpb24gRGVjbGFyaW5nIGEgZnVuY3Rpb24gd2l0aGluIGFuICJpZiIgRXhwcmVzc2lvbgogKi8KCnZhciBUSEVSRSA9ICJJJ20gdGhlcmUiOwp2YXIgSEVSRSA9ICJJJ20gaGVyZSI7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmICggX19mdW5jICE9PSB1bmRlZmluZWQpIHsKCSRFUlJPUignIzE6IF9fZnVuYyA9PT0gdW5kZWZpbmVkLiBBY3R1YWw6ICBfX2Z1bmMgPT09JysgX19mdW5jICApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKaWYgKHRydWUpewogICAgdmFyIF9fZnVuYyA9IGZ1bmN0aW9uKCl7cmV0dXJuIEhFUkU7fTsKfSBlbHNlIHsKICAgIHZhciBfX2Z1bmMgPSBmdW5jdGlvbiAoKXtyZXR1cm4gVEhFUkU7fTsKfTsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKF9fZnVuYygpICE9PSBIRVJFKSB7CgkkRVJST1IoJyMyOiBfX2Z1bmMoKSA9PT0gSEVSRS4gQWN0dWFsOiAgX19mdW5jKCkgPT09JysgX19mdW5jKCkgICk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"FunctionExpression must be localed in a reacheable fragment of the program","description":"Declaring a function within an \"if\" Expression","path":"TestCases/ch14/S14_A1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBGdW5jdGlvbkRlY2xhcmF0aW9uIGNhbm5vdCBiZSBsb2NhbGVkIGluc2lkZSBhbiBFeHByZXNzaW9uCiAqCiAqIEBwYXRoIGNoMTQvUzE0X0EyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoaW4gYW4gImlmIiBFeHByZXNzaW9uCiAqLwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vQ0hFQ0sjMQppZiAodHlwZW9mIGYgIT09ICd1bmRlZmluZWQnKSB7CgkkRVJST1IoJyMxOiB0eXBlb2YgZiA9PT0gXCd1bmRlZmluZWRcJy4gQWN0dWFsOiAgdHlwZW9mIGYgPT09JysgdHlwZW9mIGYgICk7Cn0KLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMyCmlmIChmdW5jdGlvbiBmKGFyZyl7CglpZiAoYXJnPT09MCkKCSAgIHJldHVybiAxOwoJZWxzZQoJICAgcmV0dXJuIGYoYXJnLTEpKmFyZzsKfSgzKSE9PTYpIHsKCSRFUlJPUignIzI6IEZ1bmN0aW9uRGVjbGFyYXRpb24gY2Fubm90IGJlIGxvY2FsZWQgaW5zaWRlIGFuIEV4cHJlc3Npb24nKTsKfTsKLy8KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgo=","commentary":"FunctionDeclaration cannot be localed inside an Expression","description":"Declaring a function within an \"if\" Expression","path":"TestCases/ch14/S14_A2.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBHbG9iYWwgRnVuY3Rpb25EZWNsYXJhdGlvbiBjYW5ub3QgYmUgZGVmaW5lZCB3aXRoaW4gdGhlIGJvZHkgb2YgYW5vdGhlciBGdW5jdGlvbkRlY2xhcmF0aW9uCiAqCiAqIEBwYXRoIGNoMTQvUzE0X0EzLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoaW4gdGhlIGJvZHkgb2YgYW5vdGhlciBmdW5jdGlvbgogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKHR5cGVvZiBfX2Z1bmMgIT09ICJmdW5jdGlvbiIpIHsKCSRFUlJPUignIzE6IHR5cGVvZiBfX2Z1bmMgPT09ICJmdW5jdGlvbiIuIEFjdHVhbDogIHR5cGVvZiBfX2Z1bmMgPT09JysgdHlwZW9mIF9fZnVuYyAgKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzIKaWYgKHR5cGVvZiBfX2d1bmMgIT09ICJ1bmRlZmluZWQiKSB7CgkkRVJST1IoJyMyOiB0eXBlb2YgX19ndW5jID09PSAidW5kZWZpbmVkIi4gQWN0dWFsOiAgdHlwZW9mIF9fZ3VuYyA9PT0nKyB0eXBlb2YgX19ndW5jICApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19mdW5jKCl7CiAgICBmdW5jdGlvbiBfX2d1bmMoKXtyZXR1cm4gdHJ1ZX07Cn0KCg==","commentary":"Global FunctionDeclaration cannot be defined within the body of another FunctionDeclaration","description":"Declaring a function within the body of another function","path":"TestCases/ch14/S14_A3.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmVyIHdpdGhpbiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gY2FuIGJlIHdyaXR0ZW4gaW4gYm90aCBsZXR0ZXJzIGFuZCB1bmljb2RlCiAqCiAqIEBwYXRoIGNoMTQvUzE0X0E1X1QxLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBfX1x1MDA2Nlx1MDA3NVx1MDA2ZVx1MDA2Mygpe3JldHVybiAiYm90aCJ9IgogKi8KCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovL0NIRUNLIzEKaWYgKF9fZnVuYygpICE9PSAiYm90aCIpIHsKCSRFUlJPUignIzE6IF9fZnVuYygpID09PSAiYm90aCIuIEFjdHVhbDogIF9fZnVuYygpID09PScrIF9fZnVuYygpICApOwp9Ci8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKZnVuY3Rpb24gX19mdW5jKCl7cmV0dXJuICJhc2NpaSJ9OwpmdW5jdGlvbiBcdTAwNWZcdTAwNWZcdTAwNjZcdTAwNzVcdTAwNmVcdTAwNjMoKXtyZXR1cm4gInVuaWNvZGUifTsvL19fZnVuYyBpbiB1bmljb2RlCmZ1bmN0aW9uIF9fXHUwMDY2XHUwMDc1XHUwMDZlXHUwMDYzKCl7cmV0dXJuICJib3RoIn07Ly9fX2Z1bmMgaW4gdW5pY29kZQoK","commentary":"The Identifer within a FunctionDeclaration can be written in both letters and unicode","description":"Declaring a function with \"function __\\u0066\\u0075\\u006e\\u0063(){return \"both\"}\"","path":"TestCases/ch14/S14_A5_T1.js"},{"code":"Ly8gQ29weXJpZ2h0IDIwMDkgdGhlIFNwdXRuaWsgYXV0aG9ycy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi8qKgogKiBUaGUgSWRlbnRpZmVyIHdpdGhpbiBhIEZ1bmN0aW9uRGVjbGFyYXRpb24gY2FuIGJlIHdyaXR0ZW4gaW4gYm90aCBsZXR0ZXJzIGFuZCB1bmljb2RlCiAqCiAqIEBwYXRoIGNoMTQvUzE0X0E1X1QyLmpzCiAqIEBkZXNjcmlwdGlvbiBEZWNsYXJpbmcgYSBmdW5jdGlvbiB3aXRoICJmdW5jdGlvbiBcdTAwNWZcdTAwNWZcdTAwNjZcdTAwNzVcdTAwNmVcdTAwNjMoKXtyZXR1cm4gInVuaWNvZGUifSIKICovCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy9DSEVDSyMxCmlmIChfX2Z1bmMoKSAhPT0gInVuaWNvZGUiKSB7CgkkRVJST1IoJyMxOiBfX2Z1bmMoKSA9PT0gInVuaWNvZGUiLiBBY3R1YWw6ICBfX2Z1bmMoKSA9PT0nKyBfX2Z1bmMoKSAgKTsKfQovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmZ1bmN0aW9uIF9fZnVuYygpe3JldHVybiAiYXNjaWkifTsKZnVuY3Rpb24gXHUwMDVmXHUwMDVmXHUwMDY2XHUwMDc1XHUwMDZlXHUwMDYzKCl7cmV0dXJuICJ1bmljb2RlIn07Ly9fX2Z1bmMgaW4gdW5pY29kZQoK","commentary":"The Identifer within a FunctionDeclaration can be written in both letters and unicode","description":"Declaring a function with \"function \\u005f\\u005f\\u0066\\u0075\\u006e\\u0063(){return \"unicode\"}\"","path":"TestCases/ch14/S14_A5_T2.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMS1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIGNvcnJlY3QgdXNhZ2UNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICd1c2Ugc3RyaWN0JzsNCiAgICAgcmV0dXJuKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"'use strict' directive - correct usage","noStrict":"","path":"TestCases/ch14/14.1/14.1-1-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTAtcy5qcw0KICogQGRlc2NyaXB0aW9uIG90aGVyIGRpcmVjdGl2ZXMgLSBtYXkgZm9sbG93ICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICAidXNlIHN0cmljdCI7DQogICAgICJib2d1cyBkaXJlY3RpdmUiOw0KICAgICByZXR1cm4gKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"other directives - may follow 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-10-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTEtcy5qcw0KICogQGRlc2NyaXB0aW9uIGNvbW1lbnRzIG1heSBwcmVjZWVkICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICAvLyBjb21tZW50DQogICAgIC8qIGNvbW1lbnQgKi8gInVzZSBzdHJpY3QiOw0KDQogICByZXR1cm4odGhpcyA9PT0gdW5kZWZpbmVkKTsNCg0KICB9DQoNCiAgcmV0dXJuIGZvby5jYWxsKHVuZGVmaW5lZCk7DQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"comments may preceed 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-11-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTItcy5qcw0KICogQGRlc2NyaXB0aW9uIGNvbW1lbnRzIG1heSBmb2xsb3cgJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZQ0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgICJ1c2Ugc3RyaWN0IjsgICAgLyogY29tbWVudCAqLyAgIC8vIGNvbW1lbnQNCg0KICAgICByZXR1cm4gKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"comments may follow 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-12-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTMtcy5qcw0KICogQGRlc2NyaXB0aW9uIHNlbWljb2xvbiBpbnNlcnRpb24gd29ya3MgZm9yJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZQ0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgInVzZSBzdHJpY3QiDQogICAgIHJldHVybiAodGhpcyA9PT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"semicolon insertion works for'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-13-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTQtcy5qcw0KICogQGRlc2NyaXB0aW9uIHNlbWljb2xvbiBpbnNlcnRpb24gbWF5IGNvbWUgYmVmb3JlICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICJhbm90aGVyIGRpcmVjdGl2ZSINCiAgICAidXNlIHN0cmljdCIgOw0KICAgIHJldHVybiAodGhpcyA9PT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"semicolon insertion may come before 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-14-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTUtcy5qcw0KICogQGRlc2NyaXB0aW9uIGJsYW5rIGxpbmVzIG1heSBjb21lIGJlZm9yZSAndXNlIHN0cmljdCcgZGlyZWN0aXZlDQogKiBAbm9TdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCg0KDQoNCg0KDQoNCiAgICAidXNlIHN0cmljdCIgOw0KICAgIHJldHVybiAodGhpcyA9PT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"blank lines may come before 'use strict' directive","noStrict":"","path":"TestCases/ch14/14.1/14.1-15-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTYtcy5qcw0KICogQGRlc2NyaXB0aW9uICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUgLSBub3QgcmVjb2duaXplZCBpZiBpdCBmb2xsb3cgYW4gZW1wdHkgc3RhdGVtZW50DQogKiBAbm9TdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCiAgICA7ICd1c2Ugc3RyaWN0JzsNCiAgICAgcmV0dXJuICh0aGlzICE9PSB1bmRlZmluZWQpOw0KICB9DQoNCiAgcmV0dXJuIGZvby5jYWxsKHVuZGVmaW5lZCk7DQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"'use strict' directive - not recognized if it follow an empty statement","noStrict":"","path":"TestCases/ch14/14.1/14.1-16-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMTctcy5qcw0KICogQGRlc2NyaXB0aW9uICd1c2Ugc3RyaWN0JyBkaXJlY3RpdmUgLSBub3QgcmVjb2duaXplZCBpZiBpdCBmb2xsb3cgc29tZSBvdGhlciBzdGF0bWVudCBlbXB0eSBzdGF0ZW1lbnQNCiAqIEBub1N0cmljdA0KICovDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCiAgICB2YXIgeDsNCiAgICAndXNlIHN0cmljdCc7DQogICAgcmV0dXJuICh0aGlzICE9PSB1bmRlZmluZWQpOw0KICB9DQoNCiAgcmV0dXJuIGZvby5jYWxsKHVuZGVmaW5lZCk7DQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"'use strict' directive - not recognized if it follow some other statment empty statement","noStrict":"","path":"TestCases/ch14/14.1/14.1-17-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMi1zLmpzDQogKiBAZGVzY3JpcHRpb24gInVzZSBzdHJpY3QiIGRpcmVjdGl2ZSAtIGNvcnJlY3QgdXNhZ2UgZG91YmxlIHF1b3Rlcw0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgInVzZSBzdHJpY3QiOw0KICAgICByZXR1cm4gKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"\"use strict\" directive - correct usage double quotes","noStrict":"","path":"TestCases/ch14/14.1/14.1-2-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtMy1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIGl0IGNvbnRhaW5zIGV4dHJhIHdoaXRlc3BhY2UNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICcgIHVzZSAgICBzdHJpY3QgICAnOw0KICAgICByZXR1cm4gKHRoaXMgIT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"'use strict' directive - not recognized if it contains extra whitespace","noStrict":"","path":"TestCases/ch14/14.1/14.1-3-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtNC1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIGNvbnRhaW5zIExpbmUgQ29udGludWF0aW9uDQogKiBAbm9TdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCiAgICAndXNlIHN0clwNCmljdCc7DQogICAgIHJldHVybiAodGhpcyAhPT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"'use strict' directive - not recognized if contains Line Continuation","noStrict":"","path":"TestCases/ch14/14.1/14.1-4-s.js"},{"code":"LyoqDQogKiBAcGF0aCBjaDE0LzE0LjEvMTQuMS00Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gYSBVc2UgU3RyaWN0IERpcmVjdGl2ZSBmb2xsb3dlZCBieSBhIHN0cmljdCBtb2RlIHZpb2xhdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBeKCg/IU5vdEVhcmx5RXJyb3IpLikqJA0KICovDQoidXNlIHN0cmljdCI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KZXZhbCA9IDQyOw==","commentary":"","description":"StrictMode - a Use Strict Directive followed by a strict mode violation","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch14/14.1/14.1-4gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtNS1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIGNvbnRhaW5zIGEgRXNjYXBlU2VxdWVuY2UNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICd1c2VcdTAwMjBzdHJpY3QnOw0KICAgICByZXR1cm4odGhpcyAhPT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"'use strict' directive - not recognized if contains a EscapeSequence","noStrict":"","path":"TestCases/ch14/14.1/14.1-5-s.js"},{"code":"LyoqDQogKiBAcGF0aCBjaDE0LzE0LjEvMTQuMS01Z3MuanMNCiAqIEBkZXNjcmlwdGlvbiBTdHJpY3RNb2RlIC0gYSBVc2UgU3RyaWN0IERpcmVjdGl2ZSBlbWJlZGRlZCBpbiBhIGRpcmVjdGl2ZSBwcm9sb2d1ZSBmb2xsb3dlZCBieSBhIHN0cmljdCBtb2RlIHZpb2xhdGlvbg0KICogQG9ubHlTdHJpY3QNCiAqIEBuZWdhdGl2ZSBeKCg/IU5vdEVhcmx5RXJyb3IpLikqJA0KICovDQoiYSI7DQoidXNlIHN0cmljdCI7DQoiYyI7DQp0aHJvdyBOb3RFYXJseUVycm9yOw0KZXZhbCA9IDQyOw==","commentary":"","description":"StrictMode - a Use Strict Directive embedded in a directive prologue followed by a strict mode violation","negative":"^((?!NotEarlyError).)*$","onlyStrict":"","path":"TestCases/ch14/14.1/14.1-5gs.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtNi1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIGNvbnRhaW5zIGEgPFRBQj4gaW5zdGVhZCBvZiBhIHNwYWNlDQogKiBAbm9TdHJpY3QNCiAqLw0KDQoNCmZ1bmN0aW9uIHRlc3RjYXNlKCkgew0KDQogIGZ1bmN0aW9uIGZvbygpDQogIHsNCiAgICAndXNlCXN0cmljdCc7DQogICAgIHJldHVybiAodGhpcyAhPT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"'use strict' directive - not recognized if contains a instead of a space","noStrict":"","path":"TestCases/ch14/14.1/14.1-6-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtNy1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG5vdCByZWNvZ25pemVkIGlmIHVwcGVyIGNhc2UNCiAqIEBub1N0cmljdA0KICovDQoNCg0KZnVuY3Rpb24gdGVzdGNhc2UoKSB7DQoNCiAgZnVuY3Rpb24gZm9vKCkNCiAgew0KICAgICdVc2UgU3RyaWN0JzsNCiAgICAgcmV0dXJuICh0aGlzICE9PSB1bmRlZmluZWQpOw0KICB9DQoNCiAgcmV0dXJuIGZvby5jYWxsKHVuZGVmaW5lZCk7DQogfQ0KcnVuVGVzdENhc2UodGVzdGNhc2UpOw0K","commentary":"","description":"'use strict' directive - not recognized if upper case","noStrict":"","path":"TestCases/ch14/14.1/14.1-7-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtOC1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG1heSBmb2xsb3cgb3RoZXIgZGlyZWN0aXZlcw0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgICJib2d1cyBkaXJlY3RpdmUiOw0KICAgICAidXNlIHN0cmljdCI7DQogICAgIHJldHVybiAodGhpcyA9PT0gdW5kZWZpbmVkKTsNCiAgfQ0KDQogIHJldHVybiBmb28uY2FsbCh1bmRlZmluZWQpOw0KIH0NCnJ1blRlc3RDYXNlKHRlc3RjYXNlKTsNCg==","commentary":"","description":"'use strict' directive - may follow other directives","noStrict":"","path":"TestCases/ch14/14.1/14.1-8-s.js"},{"code":"Ly8vIENvcHlyaWdodCAoYykgMjAwOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24NCi8qKg0KICogQHBhdGggY2gxNC8xNC4xLzE0LjEtOS1zLmpzDQogKiBAZGVzY3JpcHRpb24gJ3VzZSBzdHJpY3QnIGRpcmVjdGl2ZSAtIG1heSBvY2N1ciBtdWx0aXBsZSB0aW1lcw0KICogQG5vU3RyaWN0DQogKi8NCg0KDQpmdW5jdGlvbiB0ZXN0Y2FzZSgpIHsNCg0KICBmdW5jdGlvbiBmb28oKQ0KICB7DQogICAgICd1c2Ugc3RyaWN0JzsNCiAgICAgInVzZSBzdHJpY3QiOw0KICAgICByZXR1cm4gKHRoaXMgPT09IHVuZGVmaW5lZCk7DQogIH0NCg0KICByZXR1cm4gZm9vLmNhbGwodW5kZWZpbmVkKTsNCiB9DQpydW5UZXN0Q2FzZSh0ZXN0Y2FzZSk7DQo=","commentary":"","description":"'use strict' directive - may occur multiple times","noStrict":"","path":"TestCases/ch14/14.1/14.1-9-s.js"}]}}