aboutsummaryrefslogtreecommitdiffstats
path: root/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4
diff options
context:
space:
mode:
Diffstat (limited to 'external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4')
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.10/15.4.4.10-10-c-ii-1.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-a-1.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-c-ii-1.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-1.js35
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-2.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-10.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-11.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-12.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-13.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-14.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-15.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-17.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-4.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-5.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-6.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-7.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-8.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-9.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-1.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-2.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-1.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-10.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-11.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-12.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-13.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-14.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-15.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-17.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-18.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-19.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-4.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-5.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-6.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-7.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-8.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-9.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-1.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-10.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-11.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-12.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-13.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-14.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-15.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-16.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-17.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-18.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-19.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-2.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-20.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-21.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-22.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-23.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-24.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-25.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-28.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-29.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-3.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-4.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-5.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-6.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-7.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-8.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-9.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-1.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-10.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-11.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-2.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-3.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-4.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-5.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-6.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-7.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-8.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-9.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-1.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-10.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-11.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-12.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-13.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-14.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-15.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-16.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-17.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-18.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-19.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-2.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-20.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-21.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-22.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-23.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-24.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-25.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-26.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-27.js70
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-28.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-29.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-3.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-30.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-31.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-32.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-33.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-4.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-5.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-6.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-7.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-8.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-9.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-6-1.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-1.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-2.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-3.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-4.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-5.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-1.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-2.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-3.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-4.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-1.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-10.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-11.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-2.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-3.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-4.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-5.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-6.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-7.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-8.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-9.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-1.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-10.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-11.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-12.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-13.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-14.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-15.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-16.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-17.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-18.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-19.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-2.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-3.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-4.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-5.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-6.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-7.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-8.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-9.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-1.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-1.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-10.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-11.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-12.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-13.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-14.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-15.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-16.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-17.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-18.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-19.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-2.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-20.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-21.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-22.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-23.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-25.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-26.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-27.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-28.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-29.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-3.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-30.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-31.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-4.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-5.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-6.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-7.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-8.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-1.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-10.js38
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-11.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-2.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-3.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-4.js38
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-5.js38
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-6.js38
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-7.js38
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-8.js38
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-9.js38
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-1.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-2.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-1.js35
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-2.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-1.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-10.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-11.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-12.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-13.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-14.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-15.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-17.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-4.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-5.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-6.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-7.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-8.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-9.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-1.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-10.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-11.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-12.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-13.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-14.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-15.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-17.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-18.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-19.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-2.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-4.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-5.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-6.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-7.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-8.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-9.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-1.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-10.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-11.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-12.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-13.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-14.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-15.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-16.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-17.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-18.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-19.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-2.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-20.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-21.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-22.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-23.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-24.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-25.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-28.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-29.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-3.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-4.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-5.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-6.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-7.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-8.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-9.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-1.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-10.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-11.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-2.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-3.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-4.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-5.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-6.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-7.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-8.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-9.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-1.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-10.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-11.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-12.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-13.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-14.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-15.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-16.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-17.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-18.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-19.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-2.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-20.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-21.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-22.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-23.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-24.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-25.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-26.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-27.js71
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-28.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-29.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-3.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-30.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-31.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-32.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-33.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-4.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-5.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-6.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-7.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-8.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-9.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-1.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-2.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-3.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-4.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-5.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-6.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-1.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-2.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-3.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-4.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-1.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-10.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-11.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-2.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-3.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-4.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-5.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-6.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-7.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-8.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-9.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-1.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-10.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-11.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-12.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-13.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-14.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-15.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-16.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-17.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-18.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-19.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-2.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-3.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-4.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-5.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-6.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-7.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-8.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-9.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-1.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-1.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-10.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-11.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-12.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-13.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-14.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-15.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-16.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-17.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-18.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-19.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-2.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-20.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-21.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-22.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-23.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-25.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-26.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-27.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-28.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-29.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-3.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-30.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-31.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-4.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-5.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-6.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-7.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-8.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-1.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-10.js38
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-11.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-2.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-3.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-4.js38
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-5.js37
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-6.js38
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-7.js38
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-8.js38
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-9.js38
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-1.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-2.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-1.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-2.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-1.js35
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-2.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-1.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-10.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-11.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-12.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-13.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-14.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-15.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-2.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-3.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-4.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-5.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-6.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-7.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-8.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-9.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-1.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-10.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-11.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-12.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-13.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-14.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-15.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-17.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-18.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-19.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-2.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-3.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-4.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-5.js70
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-6.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-7.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-8.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-9.js73
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-1.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-10.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-11.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-12.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-13.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-14.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-15.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-16.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-17.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-18.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-19.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-2.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-20.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-21.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-22.js70
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-23.js77
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-24.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-25.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-28.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-29.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-3.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-4.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-5.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-6.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-7.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-8.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-9.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-1.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-10.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-11.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-12.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-15.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-3.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-4.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-5.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-6.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-7.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-8.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1-s.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-10.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-11.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-12.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-13.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-14.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-15.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-16.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-17.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-18.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-19.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-21.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-22.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-23.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-24.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-4.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-5.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-6.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-7.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-9.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-1.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-3.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-5.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-6.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-7.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-8.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-9.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-1.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-10.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-11.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-12.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-13.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-14.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-15.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-16.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-2.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-3.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-4.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-5.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-6.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-7.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-8.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-9.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-1.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-10.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-11.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-12.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-13.js70
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-14.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-15.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-16.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-17.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-18.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-19.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-20.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-21.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-22.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-23.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-25.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-26.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-27.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-28.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-29.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-3.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-30.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-31.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-4.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-5.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-6.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-7.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-8.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-9.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-1.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-10.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-11.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-12.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-13.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-16.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-17.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-18.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-19.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-20.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-21.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-22.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-23.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-3.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-4.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-5.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-6.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-7.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-8.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-9.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-1.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-10.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-11.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-12.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-13.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-14.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-15.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-16.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-17.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-18.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-19.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-20.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-21.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-22.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-23.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-24.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-25.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-27.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-28.js72
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-29.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-5.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-6.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-7.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-8.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-9.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-1.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-10.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-11.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-12.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-13.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-2.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-3.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-4.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-5.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-6.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-7.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-8.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-1.js36
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-2.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-1.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-10.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-11.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-12.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-13.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-14.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-15.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-2.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-3.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-4.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-5.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-6.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-7.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-8.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-9.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-1.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-10.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-11.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-12.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-13.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-14.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-15.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-17.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-18.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-19.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-2.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-3.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-4.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-5.js70
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-6.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-7.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-8.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-9.js73
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-1.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-10.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-11.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-12.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-13.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-14.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-15.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-16.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-17.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-18.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-19.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-20.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-21.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-22.js70
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-23.js76
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-24.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-25.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-28.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-29.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-3.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-4.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-5.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-6.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-7.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-8.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-9.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-1.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-10.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-11.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-12.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-15.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-2.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-3.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-4.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-5.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-6.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-7.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-8.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1-s.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-10.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-11.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-12.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-13.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-14.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-15.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-16.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-17.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-18.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-19.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-21.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-22.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-23.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-24.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-25.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-4.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-5.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-6.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-7.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-9.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-1.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-3.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-4.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-5.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-6.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-8.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-9.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-1.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-10.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-11.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-12.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-13.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-14.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-15.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-16.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-2.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-3.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-4.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-5.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-6.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-7.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-8.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-9.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-1.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-10.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-11.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-12.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-13.js72
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-14.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-15.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-16.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-17.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-18.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-19.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-2.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-20.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-21.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-22.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-23.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-25.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-26.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-27.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-28.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-29.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-3.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-30.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-31.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-4.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-5.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-6.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-7.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-8.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-9.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-1.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-10.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-11.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-12.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-13.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-16.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-17.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-18.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-19.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-2.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-20.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-21.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-22.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-23.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-3.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-4.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-5.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-6.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-7.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-8.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-9.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-1.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-10.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-11.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-12.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-13.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-14.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-15.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-16.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-17.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-18.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-19.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-2.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-20.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-21.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-22.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-23.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-24.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-25.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-26.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-28.js71
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-29.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-3.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-4.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-5.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-6.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-7.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-8.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-9.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-1.js40
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-10.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-11.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-12.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-13.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-2.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-3.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-4.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-5.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-6.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-7.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-8.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-1.js36
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-2.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-1.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-10.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-11.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-12.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-13.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-14.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-15.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-2.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-3.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-5.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-6.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-7.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-8.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-9.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-1.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-10.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-11.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-12.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-13.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-14.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-15.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-17.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-18.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-19.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-2.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-3.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-4.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-5.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-6.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-7.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-8.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-9.js70
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-1.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-10.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-11.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-12.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-13.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-14.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-15.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-16.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-17.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-18.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-19.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-2.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-20.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-21.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-22.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-23.js73
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-24.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-25.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-28.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-29.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-3.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-5.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-6.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-7.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-8.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-9.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-1.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-10.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-11.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-12.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-15.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-2.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-3.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-4.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-5.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-6.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-7.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-8.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1-s.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-10.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-11.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-12.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-13.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-14.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-15.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-16.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-17.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-18.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-19.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-2.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-21.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-22.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-23.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-24.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-25.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-3.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-5.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-6.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-7.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-9.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-1.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-2.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-5.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-7.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-8.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-9.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-1.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-10.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-11.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-12.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-13.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-14.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-15.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-16.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-2.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-3.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-4.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-5.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-6.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-7.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-8.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-9.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-1.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-10.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-11.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-12.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-13.js73
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-14.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-15.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-16.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-17.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-18.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-19.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-20.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-21.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-22.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-23.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-25.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-26.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-27.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-28.js71
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-29.js71
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-3.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-30.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-31.js72
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-4.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-5.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-6.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-7.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-8.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-9.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-1.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-10.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-11.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-12.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-13.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-16.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-17.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-18.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-19.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-20.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-21.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-22.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-23.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-4.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-5.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-6.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-7.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-8.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-9.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-1.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-10.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-11.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-12.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-13.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-2.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-3.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-4.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-5.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-6.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-7.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-8.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-1.js36
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-2.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-1.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-10.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-11.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-12.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-13.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-14.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-15.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-2.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-3.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-5.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-6.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-7.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-8.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-9.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-1.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-10.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-11.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-12.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-13.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-14.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-15.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-17.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-18.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-19.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-2.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-3.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-5.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-6.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-7.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-8.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-9.js70
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-1.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-10.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-11.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-12.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-13.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-14.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-15.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-16.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-17.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-18.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-19.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-20.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-21.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-22.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-23.js72
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-24.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-25.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-28.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-29.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-3.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-4.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-5.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-6.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-7.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-8.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-9.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-1.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-10.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-11.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-12.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-15.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-2.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-3.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-4.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-5.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-6.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-7.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-8.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1-s.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-10.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-11.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-12.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-13.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-14.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-15.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-16.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-17.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-18.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-19.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-2.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-21.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-22.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-23.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-24.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-5.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-6.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-7.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-9.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-1.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-2.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-1.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-3.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-4.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-5.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-6.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-7.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-8.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-9.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-1.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-10.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-11.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-12.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-13.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-14.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-15.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-16.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-2.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-3.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-4.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-5.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-6.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-7.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-8.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-9.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-1.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-10.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-11.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-12.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-13.js72
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-14.js71
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-15.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-16.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-17.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-18.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-19.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-2.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-20.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-21.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-22.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-23.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-25.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-26.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-27.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-28.js74
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-29.js74
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-3.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-30.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-31.js72
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-4.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-5.js70
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-6.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-7.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-8.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-9.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-1.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-10.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-11.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-12.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-13.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-16.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-17.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-18.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-19.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-2.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-20.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-21.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-22.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-23.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-4.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-5.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-6.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-7.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-8.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-9.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-1.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-2.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-3.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-4.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-5.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-1.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-10.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-11.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-12.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-13.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-2.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-3.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-4.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-5.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-6.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-7.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-8.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-9.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-1.js36
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-2.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-1.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-10.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-11.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-12.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-13.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-14.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-15.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-2.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-3.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-4.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-5.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-6.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-7.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-8.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-9.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-1.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-2.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-3.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-4.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-1.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-10.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-11.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-12.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-13.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-14.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-15.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-17.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-18.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-19.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-2.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-3.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-4.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-5.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-6.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-7.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-8.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-9.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-1.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-10.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-11.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-13.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-15.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-16.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-17.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-18.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-19.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-20.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-21.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-22.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-23.js71
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-24.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-4.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-5.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-6.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-9.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-1.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-10.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-11.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-12.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-15.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-2.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-3.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-4.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-5.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-6.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-7.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-8.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1-s.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-10.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-11.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-12.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-13.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-14.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-15.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-16.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-17.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-18.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-19.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-21.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-22.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-23.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-24.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-27.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-28.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-29.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-30.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-5.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-6.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-7.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-9.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-1.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-2.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-4.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-5.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-6.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-7.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-8.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-1.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-2.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-3.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-4.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-5.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-6.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-7.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-8.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-9.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-1.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-10.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-11.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-12.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-13.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-14.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-15.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-16.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-2.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-3.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-4.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-5.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-6.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-7.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-8.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-1.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-10.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-11.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-12.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-13.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-14.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-15.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-16.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-17.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-18.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-19.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-2.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-20.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-21.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-22.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-23.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-25.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-26.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-27.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-28.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-29.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-3.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-30.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-31.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-4.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-5.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-6.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-7.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-8.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-9.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-1.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-10.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-11.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-12.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-13.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-16.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-17.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-18.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-19.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-2.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-20.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-21.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-22.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-23.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-4.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-5.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-6.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-7.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-8.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-9.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-1.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-2.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-3.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-4.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-5.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-6.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-10.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-11.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-12.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-13.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-14.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-15.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-16.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-17.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-18.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-19.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-20.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-21.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-22.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-23.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-24.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-25.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-26.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-28.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-29.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-3.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-30.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-5.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-6.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-7.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-8.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-9.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-1.js36
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-2.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-1.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-10.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-11.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-12.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-13.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-14.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-15.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-2.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-3.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-4.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-5.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-6.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-7.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-8.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-9.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-1.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-2.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-3.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-4.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-5.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-6.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-7.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-8.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-1.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-10.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-11.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-12.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-13.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-14.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-15.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-17.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-18.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-19.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-2.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-3.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-4.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-5.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-6.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-7.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-8.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-9.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-1.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-10.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-11.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-12.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-13.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-14.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-15.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-16.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-17.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-18.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-19.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-20.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-21.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-22.js70
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-23.js70
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-24.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-25.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-28.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-29.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-3.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-4.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-5.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-6.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-7.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-8.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-9.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-1.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-10.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-11.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-12.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-15.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-2.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-3.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-4.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-5.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-6.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-7.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-8.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-1.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-10.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-11.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-12.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-13.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-3.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-5.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-6.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-7.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-8.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-9.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-1.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-10.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-11.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-2.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-3.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-4.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-5.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-6.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-7.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-8.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-1.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-2.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-3.js71
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-1.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-1.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-10.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-11.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-12.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-13.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-14.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-15.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-16.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-17.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-18.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-19.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-2.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-20.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-21.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-22.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-23.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-25.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-26.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-27.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-28.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-29.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-3.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-30.js70
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-31.js71
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-32.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-33.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-4.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-5.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-6.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-7.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-8.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-9.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-1.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-3.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-5.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-6.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-7.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-8.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-1.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-10.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-3.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-4.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-5.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-6.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-7.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-8.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-9.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-1.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-10.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-11.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-12.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-13.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-14.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-15.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-16.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-17.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-18.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-19.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-2.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-20.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-21.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-22.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-23.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-24.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-25.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-26.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-27.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-28.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-29.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-3.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-4.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-5.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-6.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-7.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-8.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-9.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-1.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-1.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-10.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-11.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-12.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-13.js70
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-14.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-15.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-16.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-17.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-18.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-19.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-2.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-20.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-21.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-22.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-23.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-25.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-26.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-27.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-28.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-29.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-3.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-30.js71
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-31.js72
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-32.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-33.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-4.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-5.js71
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-6.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-7.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-8.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-9.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-1.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-10.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-11.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-12.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-13.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-14.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-16.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-17.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-18.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-19.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-2.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-20.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-21.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-22.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-23.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-24.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-25.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-26.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-27.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-28.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-29.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-30.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-31.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-32.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-33.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-34.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-35.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-37.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4-s.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-5.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-7.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-8.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-9.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js36
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-15.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js73
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js73
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js79
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-15.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-1.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-2.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-3.js72
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-1.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-10.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-11.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-12.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-13.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-14.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-15.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-16.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-17.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-18.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-19.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-2.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-20.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-21.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-22.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-23.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-25.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-26.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-27.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-28.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-29.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-3.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-30.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-31.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-32.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-33.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-4.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-5.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-6.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-7.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-8.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-9.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-8.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-9.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-10.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-11.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-12.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-13.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-14.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-15.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-16.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-17.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-18.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-19.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js59
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-20.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-21.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-22.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-23.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-24.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-25.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-26.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-27.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-28.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-29.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-4.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-5.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-6.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-7.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-8.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-9.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-10.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-11.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-12.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-13.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-14.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-15.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-16.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-17.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-18.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-19.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-20.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-21.js62
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-22.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-23.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-30.js70
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-31.js71
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-32.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-33.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-5.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-6.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-9.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js49
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-37.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4-s.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-b-iii-3-b-1.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-c-i-1.js71
1938 files changed, 100761 insertions, 0 deletions
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.10/15.4.4.10-10-c-ii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.10/15.4.4.10-10-c-ii-1.js
new file mode 100644
index 000000000..ee4372dde
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.10/15.4.4.10-10-c-ii-1.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ES5Harness.registerTest({
+ id: "15.4.4.10-10-c-ii-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.10/15.4.4.10-10-c-ii-1.js",
+
+ description: "Array.prototype.slice will slice a string from start to end when index property (read-only) exists in Array.prototype (Step 10.c.ii)",
+
+ test: function testcase() {
+ var arrObj = [1, 2, 3];
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ value: "test",
+ writable: false,
+ configurable: true
+ });
+
+ var newArr = arrObj.slice(0, 1);
+ return newArr.hasOwnProperty("0") && newArr[0] === 1 && typeof newArr[1] === "undefined";
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Object.defineProperty);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-a-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-a-1.js
new file mode 100644
index 000000000..0a3185d40
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-a-1.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.12-9-a-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-a-1.js",
+
+ description: "Array.prototype.splice - 'from' is the result of ToString(actualStart+k) in an Array",
+
+ test: function testcase() {
+ var arrObj = [1, 2, 3];
+ var newArrObj = arrObj.splice(-2, 1);
+ return newArrObj.length === 1 && newArrObj[0] === 2;
+ },
+
+ precondition: function prereq() {
+ return true;
+ }
+});
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-c-ii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-c-ii-1.js
new file mode 100644
index 000000000..8350ab497
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-c-ii-1.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ES5Harness.registerTest({
+ id: "15.4.4.12-9-c-ii-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.12/15.4.4.12-9-c-ii-1.js",
+
+ description: "Array.prototype.splice will splice an array even when Array.prototype has index '0' set to read-only and 'fromPresent' less than 'actualDeleteCount (Step 9.c.ii)",
+
+ test: function testcase() {
+ try {
+ var arr = ["a", "b", "c"];
+ Array.prototype[0] = "test";
+ var newArr = arr.splice(2, 1, "d");
+
+ var verifyValue = false;
+ verifyValue = arr.length === 3 && arr[0] === "a" && arr[1] === "b" && arr[2] === "d"
+ && newArr[0] === "c" && newArr.length === 1;
+
+ var verifyEnumerable = false;
+ for (var p in newArr) {
+ if (newArr.hasOwnProperty("0") && p === "0") {
+ verifyEnumerable = true;
+ }
+ }
+
+ var verifyWritable = false;
+ newArr[0] = 12;
+ verifyWritable = newArr[0] === 12;
+
+ var verifyConfigurable = false;
+ delete newArr[0];
+ verifyConfigurable = newArr.hasOwnProperty("0");
+
+ return verifyValue && !verifyConfigurable && verifyEnumerable && verifyWritable;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Object.defineProperty);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-1.js
new file mode 100644
index 000000000..bd352a84e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-1.js
@@ -0,0 +1,35 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-0-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-1.js",
+
+description: "Array.prototype.indexOf must exist as a function",
+
+test: function testcase() {
+ var f = Array.prototype.indexOf;
+ if (typeof(f) === "function") {
+ return true;
+ }
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-2.js
new file mode 100644
index 000000000..078e3afeb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-2.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-0-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-0-2.js",
+
+description: "Array.prototype.indexOf has a length property whose value is 1.",
+
+test: function testcase() {
+ if (Array.prototype.indexOf.length === 1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1.js
new file mode 100644
index 000000000..64be3fef5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-1-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-1.js",
+
+description: "Array.prototype.indexOf applied to undefined throws a TypeError",
+
+test: function testcase() {
+ try {
+ Array.prototype.indexOf.call(undefined);
+ return false;
+ }
+ catch (e) {
+ return e instanceof TypeError;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+}
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-10.js
new file mode 100644
index 000000000..d413cdafe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-10.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-1-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-10.js",
+
+ description: "Array.prototype.indexOf applied to the Math object",
+
+ test: function testcase() {
+ try {
+ Math[1] = true;
+ Math.length = 2;
+ return Array.prototype.indexOf.call(Math, true) === 1;
+ } finally {
+ delete Math[1];
+ delete Math.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-11.js
new file mode 100644
index 000000000..ece0b52d9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-11.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.14-1-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-11.js",
+
+ description: "Array.prototype.indexOf applied to Date object",
+
+ test: function testcase() {
+
+ var obj = new Date();
+ obj.length = 2;
+ obj[1] = true;
+
+ return Array.prototype.indexOf.call(obj, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-12.js
new file mode 100644
index 000000000..38a3cc6bf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-12.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.14-1-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-12.js",
+
+ description: "Array.prototype.indexOf applied to RegExp object",
+
+ test: function testcase() {
+
+ var obj = new RegExp();
+ obj.length = 2;
+ obj[1] = true;
+
+ return Array.prototype.indexOf.call(obj, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-13.js
new file mode 100644
index 000000000..89ebe910c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-13.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-1-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-13.js",
+
+ description: "Array.prototype.indexOf applied to the JSON object",
+
+ test: function testcase() {
+ var targetObj = {};
+ try {
+ JSON[3] = targetObj;
+ JSON.length = 5;
+ return Array.prototype.indexOf.call(JSON, targetObj) === 3;
+ } finally {
+ delete JSON[3];
+ delete JSON.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-14.js
new file mode 100644
index 000000000..809854710
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-14.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.14-1-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-14.js",
+
+ description: "Array.prototype.indexOf applied to Error object",
+
+ test: function testcase() {
+
+ var obj = new SyntaxError();
+ obj[1] = true;
+ obj.length = 2;
+
+ return Array.prototype.indexOf.call(obj, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-15.js
new file mode 100644
index 000000000..9abace63e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-15.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-1-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-15.js",
+
+ description: "Array.prototype.indexOf applied to Arguments object",
+
+ test: function testcase() {
+
+ function fun() {
+ return arguments;
+ }
+ var obj = fun(1, true, 3);
+
+ return Array.prototype.indexOf.call(obj, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-17.js
new file mode 100644
index 000000000..0e4dbdd01
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-17.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-1-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-17.js",
+
+ description: "Array.prototype.indexOf applied to the global object",
+
+ test: function testcase() {
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[1] = true;
+ fnGlobalObject().length = 2;
+ return Array.prototype.indexOf.call(fnGlobalObject(), true) === 1;
+ } finally {
+ delete fnGlobalObject()[1];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2.js
new file mode 100644
index 000000000..dee7677cc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-1-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-2.js",
+
+description: "Array.prototype.indexOf applied to null throws a TypeError",
+
+test: function testcase() {
+ try {
+ Array.prototype.indexOf.call(null);
+ return false;
+ }
+ catch (e) {
+ return e instanceof TypeError;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-3.js
new file mode 100644
index 000000000..3b8d05810
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-1-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-3.js",
+
+ description: "Array.prototype.indexOf applied to boolean primitive",
+
+ test: function testcase() {
+ var targetObj = {};
+ try {
+ Boolean.prototype[1] = targetObj;
+ Boolean.prototype.length = 2;
+
+ return Array.prototype.indexOf.call(true, targetObj) === 1;
+ } finally {
+ delete Boolean.prototype[1];
+ delete Boolean.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-4.js
new file mode 100644
index 000000000..a46e740a1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-4.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.14-1-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-4.js",
+
+ description: "Array.prototype.indexOf applied to Boolean Object",
+
+ test: function testcase() {
+
+ var obj = new Boolean(false);
+ obj.length = 2;
+ obj[1] = true;
+
+ return Array.prototype.indexOf.call(obj, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+}); \ No newline at end of file
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-5.js
new file mode 100644
index 000000000..44a694691
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-5.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.14-1-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-5.js",
+
+ description: "Array.prototype.indexOf applied to number primitive",
+
+ test: function testcase() {
+ var targetObj = {};
+ try {
+ Number.prototype[1] = targetObj;
+ Number.prototype.length = 2;
+
+ return Array.prototype.indexOf.call(5, targetObj) === 1;
+ } finally {
+ delete Number.prototype[1];
+ delete Number.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-6.js
new file mode 100644
index 000000000..da400811b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-6.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.14-1-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-6.js",
+
+ description: "Array.prototype.indexOf applied to Number object",
+
+ test: function testcase() {
+
+ var obj = new Number(-3);
+ obj.length = 2;
+ obj[1] = true;
+
+ return Array.prototype.indexOf.call(obj, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-7.js
new file mode 100644
index 000000000..d30f77379
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-7.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.14-1-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-7.js",
+
+ description: "Array.prototype.indexOf applied to string primitive",
+
+ test: function testcase() {
+
+ return Array.prototype.indexOf.call("abc", "b") === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-8.js
new file mode 100644
index 000000000..d9b09bc08
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-8.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.14-1-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-8.js",
+
+ description: "Array.prototype.indexOf applied to String object",
+
+ test: function testcase() {
+
+ var obj = new String("null");
+
+ return Array.prototype.indexOf.call(obj, 'l') === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-9.js
new file mode 100644
index 000000000..f4acf29f5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-9.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.14-1-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-1-9.js",
+
+ description: "Array.prototype.indexOf applied to Function object",
+
+ test: function testcase() {
+
+ var obj = function (a, b) {
+ return a + b;
+ };
+ obj[1] = true;
+
+ return Array.prototype.indexOf.call(obj, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-1.js
new file mode 100644
index 000000000..42eba295f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-1.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-10-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-1.js",
+
+description: "Array.prototype.indexOf returns -1 for elements not present in array",
+
+test: function testcase() {
+ var a = new Array();
+ a[100] = 1;
+ a[99999] = "";
+ a[10] = new Object();
+ a[5555] = 5.5;
+ a[123456] = "str";
+ a[5] = 1E+309;
+ if (a.indexOf(1) !== 100 ||
+ a.indexOf("") !== 99999 ||
+ a.indexOf("str") !== 123456 ||
+ a.indexOf(1E+309) !== 5 || //Infinity
+ a.indexOf(5.5) !== 5555 )
+ {
+ return false;
+ }
+ if (a.indexOf(true) === -1 &&
+ a.indexOf(5) === -1 &&
+ a.indexOf("str1") === -1 &&
+ a.indexOf(null) === -1 &&
+ a.indexOf(new Object()) === -1)
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-2.js
new file mode 100644
index 000000000..7b78e2e0d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-2.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-10-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-10-2.js",
+
+description: "Array.prototype.indexOf returns -1 if 'length' is 0 and does not access any other properties",
+
+test: function testcase() {
+ var accessed = false;
+ var f = {length: 0};
+ Object.defineProperty(f,"0",{get: function () {accessed = true; return 1;}});
+
+
+ var i = Array.prototype.indexOf.call(f,1);
+
+ if (i === -1 && accessed==false) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-1.js
new file mode 100644
index 000000000..3dc984e29
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-1.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-1.js",
+
+ description: "Array.prototype.indexOf - 'length' is own data property on an Array-like object",
+
+ test: function testcase() {
+ var objOne = { 1: true, length: 2 };
+ var objTwo = { 2: true, length: 2 };
+ return Array.prototype.indexOf.call(objOne, true) === 1 &&
+ Array.prototype.indexOf.call(objTwo, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-10.js
new file mode 100644
index 000000000..cbaa11977
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-10.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-10.js",
+
+ description: "Array.prototype.indexOf - 'length' is inherited accessor property",
+
+ test: function testcase() {
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var childOne = new Con();
+ childOne[1] = true;
+ var childTwo = new Con();
+ childTwo[2] = true;
+
+ return Array.prototype.indexOf.call(childOne, true) === 1 &&
+ Array.prototype.indexOf.call(childTwo, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-11.js
new file mode 100644
index 000000000..bb4673603
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-11.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-11.js",
+
+ description: "Array.prototype.indexOf - 'length' is own accessor property without a get function",
+
+ test: function testcase() {
+
+ var obj = { 1: true };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.indexOf.call(obj, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-12.js
new file mode 100644
index 000000000..1fccc6a85
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-12.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-12.js",
+
+ description: "Array.prototype.indexOf - 'length' is own accessor property without a get function that overrides an inherited accessor property",
+
+ test: function testcase() {
+ try {
+ Object.defineProperty(Object.prototype, "length", {
+ get: function () {
+ return 20;
+ },
+ configurable: true
+ });
+
+ var obj = { 1: 1 };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.indexOf.call(obj, 1) === -1;
+ } finally {
+ delete Object.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-13.js
new file mode 100644
index 000000000..47fba55bb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-13.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-13.js",
+
+ description: "Array.prototype.indexOf - 'length' is inherited accessor property without a get function",
+
+ test: function testcase() {
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[1] = true;
+
+ return Array.prototype.indexOf.call(child, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-14.js
new file mode 100644
index 000000000..fd1ac04d2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-14.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-14.js",
+
+ description: "Array.prototype.indexOf - 'length' is undefined property",
+
+ test: function testcase() {
+
+ var obj = { 0: true, 1: true };
+
+ return Array.prototype.indexOf.call(obj, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-15.js
new file mode 100644
index 000000000..8aca4b753
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-15.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-15.js",
+
+ description: "Array.prototype.indexOf - 'length' is property of the global object",
+
+ test: function testcase() {
+ var targetObj = {};
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject().length = 2;
+
+ fnGlobalObject()[1] = targetObj;
+ if (Array.prototype.indexOf.call(fnGlobalObject(), targetObj) !== 1) {
+ return false;
+ }
+
+ fnGlobalObject()[1] = {};
+ fnGlobalObject()[2] = targetObj;
+
+ return Array.prototype.indexOf.call(fnGlobalObject(), targetObj) === -1;
+ } finally {
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-17.js
new file mode 100644
index 000000000..8c09a1a4b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-17.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-17.js",
+
+ description: "Array.prototype.indexOf applied to Arguments object which implements its own property get method",
+
+ test: function testcase() {
+
+ var func = function (a, b) {
+ arguments[2] = false;
+ return Array.prototype.indexOf.call(arguments, true) === 1 &&
+ Array.prototype.indexOf.call(arguments, false) === -1;
+ };
+
+ return func(0, true);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-18.js
new file mode 100644
index 000000000..3234a7b11
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-18.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-18.js",
+
+ description: "Array.prototype.indexOf applied to String object, which implements its own property get method",
+
+ test: function testcase() {
+ var str = new String("012");
+ try {
+ String.prototype[3] = "3";
+ return Array.prototype.indexOf.call(str, "2") === 2 &&
+ Array.prototype.indexOf.call(str, "3") === -1;
+ } finally {
+ delete String.prototype[3];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-19.js
new file mode 100644
index 000000000..dc33da1bd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-19.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-19.js",
+
+ description: "Array.prototype.indexOf applied to Function object which implements its own property get method",
+
+ test: function testcase() {
+
+ var obj = function (a, b) {
+ return a + b;
+ };
+ obj[1] = "b";
+ obj[2] = "c";
+
+ return Array.prototype.indexOf.call(obj, obj[1]) === 1 &&
+ Array.prototype.indexOf.call(obj, obj[2]) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-2.js
new file mode 100644
index 000000000..02d6897cc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-2.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-2.js",
+
+ description: "Array.prototype.indexOf - 'length' is own data property on an Array",
+
+ test: function testcase() {
+ var targetObj = {};
+ try {
+ Array.prototype[2] = targetObj;
+
+ return [0, targetObj].indexOf(targetObj) === 1 &&
+ [0, 1].indexOf(targetObj) === -1;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-3.js
new file mode 100644
index 000000000..ee9f7ce1e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-3.js",
+
+ description: "Array.prototype.indexOf - 'length' is own data property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var proto = { length: 0 };
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ child[1] = true;
+
+ return Array.prototype.indexOf.call(child, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-4.js
new file mode 100644
index 000000000..8a03a5edc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-4.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-4.js",
+
+ description: "Array.prototype.indexOf - 'length' is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var targetObj = {};
+ var arrProtoLen;
+
+ try {
+ arrProtoLen = Array.prototype.length;
+ Array.prototype.length = 0;
+
+ return [0, targetObj].indexOf(targetObj) === 1;
+
+ } finally {
+
+ Array.prototype.length = arrProtoLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-5.js
new file mode 100644
index 000000000..3568216a9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-5.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-5.js",
+
+ description: "Array.prototype.indexOf - 'length' is own data property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ value: 2,
+ configurable: true
+ });
+ child[1] = true;
+
+ return Array.prototype.indexOf.call(child, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-6.js
new file mode 100644
index 000000000..e2162d7cb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-6.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-6.js",
+
+ description: "Array.prototype.indexOf - 'length' is an inherited data property",
+
+ test: function testcase() {
+ var proto = { length: 2 };
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var childOne = new Con();
+ childOne[1] = true;
+ var childTwo = new Con();
+ childTwo[2] = true;
+
+ return Array.prototype.indexOf.call(childOne, true) === 1 &&
+ Array.prototype.indexOf.call(childTwo, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-7.js
new file mode 100644
index 000000000..2e59761a7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-7.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-7.js",
+
+ description: "Array.prototype.indexOf - 'length' is own accessor property",
+
+ test: function testcase() {
+ var objOne = { 1: true };
+ var objTwo = { 2: true };
+ Object.defineProperty(objOne, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+ Object.defineProperty(objTwo, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.indexOf.call(objOne, true) === 1 &&
+ Array.prototype.indexOf.call(objTwo, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-8.js
new file mode 100644
index 000000000..3148b4d4c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-8.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-8.js",
+
+ description: "Array.prototype.indexOf - 'length' is own accessor property that overrides an inherited data property",
+
+ test: function testcase() {
+
+ var proto = { length: 0 };
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[1] = true;
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.indexOf.call(child, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-9.js
new file mode 100644
index 000000000..ef4bd7dd2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-9.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-2-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-2-9.js",
+
+ description: "Array.prototype.indexOf - 'length' is own accessor property that overrides an inherited accessor property",
+
+ test: function testcase() {
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[1] = true;
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.indexOf.call(child, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-1.js
new file mode 100644
index 000000000..6a658e466
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-1.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-1.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is undefined",
+
+ test: function testcase() {
+
+ var obj = { 0: 1, 1: 1, length: undefined };
+
+ return Array.prototype.indexOf.call(obj, 1) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-10.js
new file mode 100644
index 000000000..1a948595b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-10.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-10.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is number primitive (value is NaN)",
+
+ test: function testcase() {
+
+ var obj = { 0: 0, length: NaN };
+
+ return Array.prototype.indexOf.call(obj, 0) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-11.js
new file mode 100644
index 000000000..5fad7ec95
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-11.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-11.js",
+
+ description: "Array.prototype.indexOf - 'length' is a string containing a positive number",
+
+ test: function testcase() {
+
+ var obj = { 1: 1, 2: 2, length: "2" };
+
+ return Array.prototype.indexOf.call(obj, 1) === 1 &&
+ Array.prototype.indexOf.call(obj, 2) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-12.js
new file mode 100644
index 000000000..0f5ad23cd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-12.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-12.js",
+
+ description: "Array.prototype.indexOf - 'length' is a string containing a negative number",
+
+ test: function testcase() {
+
+ var obj = { 1: "true", 2: "2", length: "-4294967294" };
+
+ return Array.prototype.indexOf.call(obj, "true") === 1 &&
+ Array.prototype.indexOf.call(obj, "2") === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-13.js
new file mode 100644
index 000000000..fc4ea14fc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-13.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-13.js",
+
+ description: "Array.prototype.indexOf - 'length' is a string containing a decimal number",
+
+ test: function testcase() {
+
+ var obj = { 199: true, 200: "200.59", length: "200.59" };
+
+ return Array.prototype.indexOf.call(obj, true) === 199 &&
+ Array.prototype.indexOf.call(obj, "200.59") === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-14.js
new file mode 100644
index 000000000..a523084a6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-14.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-14.js",
+
+ description: "Array.prototype.indexOf - 'length' is a string containing +/-Infinity",
+
+ test: function testcase() {
+
+ var objOne = { 0: true, 1: true, length: "Infinity" };
+ var objTwo = { 0: true, 1: true, length: "+Infinity" };
+ var objThree = { 0: true, 1: true, length: "-Infinity" };
+
+ return Array.prototype.indexOf.call(objOne, true) === -1 &&
+ Array.prototype.indexOf.call(objTwo, true) === -1 &&
+ Array.prototype.indexOf.call(objThree, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-15.js
new file mode 100644
index 000000000..681fd111a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-15.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-15.js",
+
+ description: "Array.prototype.indexOf - 'length' is a string containing an exponential number",
+
+ test: function testcase() {
+
+ var obj = { 1: true, 2: "2E0", length: "2E0" };
+
+ return Array.prototype.indexOf.call(obj, true) === 1 &&
+ Array.prototype.indexOf.call(obj, "2E0") === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-16.js
new file mode 100644
index 000000000..69f6d9be0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-16.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-16.js",
+
+ description: "Array.prototype.indexOf - 'length' is a string containing a hex number",
+
+ test: function testcase() {
+
+ var obj = { 10: true, 11: "0x00B", length: "0x00B" };
+
+ return Array.prototype.indexOf.call(obj, true) === 10 &&
+ Array.prototype.indexOf.call(obj, "0x00B") === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-17.js
new file mode 100644
index 000000000..a027eb8a1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-17.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-17.js",
+
+ description: "Array.prototype.indexOf - 'length' is a string containing a number with leading zeros",
+
+ test: function testcase() {
+
+ var obj = { 1: true, 2: "0002.0", length: "0002.0" };
+
+ return Array.prototype.indexOf.call(obj, true) === 1 &&
+ Array.prototype.indexOf.call(obj, "0002.0") === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-18.js
new file mode 100644
index 000000000..05ff3f1f5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-18.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-18.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is a string that can't convert to a number",
+
+ test: function testcase() {
+
+ var obj = { 0: true, 100: true, length: "one" };
+
+ return Array.prototype.indexOf.call(obj, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-19.js
new file mode 100644
index 000000000..8cddaa25a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-19.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-19.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is an Object which has an own toString method.",
+
+ test: function testcase() {
+
+ // objects inherit the default valueOf() method from Object
+ // that simply returns itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+
+ var obj = {
+ 1: true,
+ 2: 2,
+
+ length: {
+ toString: function () {
+ return '2';
+ }
+ }
+ };
+
+ return Array.prototype.indexOf.call(obj, true) === 1 &&
+ Array.prototype.indexOf.call(obj, 2) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-2.js
new file mode 100644
index 000000000..5e6b7b716
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-2.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-2.js",
+
+ description: "Array.prototype.indexOf return -1 when 'length' is a boolean (value is true)",
+
+ test: function testcase() {
+ var obj = { 0: 0, 1: 1, length: true };
+ return Array.prototype.indexOf.call(obj, 0) === 0 &&
+ Array.prototype.indexOf.call(obj, 1) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-20.js
new file mode 100644
index 000000000..ce69db87c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-20.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-20.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is an Object which has an own valueOf method.",
+
+ test: function testcase() {
+
+ //valueOf method will be invoked first, since hint is Number
+ var obj = {
+ 1: true,
+ 2: 2,
+ length: {
+ valueOf: function () {
+ return 2;
+ }
+ }
+ };
+
+ return Array.prototype.indexOf.call(obj, true) === 1 &&
+ Array.prototype.indexOf.call(obj, 2) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-21.js
new file mode 100644
index 000000000..4850e2601
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-21.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-21.js",
+
+ description: "Array.prototype.indexOf - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string",
+
+ test: function testcase() {
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var obj = {
+ 1: true,
+ length: {
+ toString: function () {
+ toStringAccessed = true;
+ return '2';
+ },
+
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ }
+ }
+ };
+
+ return Array.prototype.indexOf.call(obj, true) === 1 && toStringAccessed && valueOfAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-22.js
new file mode 100644
index 000000000..e70f49a27
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-22.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-22.js",
+
+ description: "Array.prototype.indexOf throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values",
+
+ test: function testcase() {
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var obj = {
+ length: {
+ toString: function () {
+ toStringAccessed = true;
+ return {};
+ },
+
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ }
+ }
+ };
+
+ try {
+ Array.prototype.indexOf.call(obj);
+ return false;
+ } catch (e) {
+ return toStringAccessed && valueOfAccessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-23.js
new file mode 100644
index 000000000..c01b58ff6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-23.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-23.js",
+
+ description: "Array.prototype.indexOf uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods",
+
+ test: function testcase() {
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var proto = {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ };
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.toString = function () {
+ toStringAccessed = true;
+ return 2;
+ };
+
+ var obj = {
+ 1: true,
+ length: child
+ };
+
+ return Array.prototype.indexOf.call(obj, true) === 1 && valueOfAccessed && !toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-24.js
new file mode 100644
index 000000000..5c5e11051
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-24.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-24.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+
+ var obj = { 122: true, 123: false, length: 123.321 }; //length will be 123 finally
+
+ return Array.prototype.indexOf.call(obj, true) === 122 &&
+ Array.prototype.indexOf.call(obj, false) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-25.js
new file mode 100644
index 000000000..06c9f8ea7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-25.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-25.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+
+ var obj = { 1: true, 2: false, length: -4294967294.5 }; //length will be 2 finally
+
+ return Array.prototype.indexOf.call(obj, true) === 1 &&
+ Array.prototype.indexOf.call(obj, false) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-28.js
new file mode 100644
index 000000000..6ec076778
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-28.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-28.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is boundary value (2^32)",
+
+ test: function testcase() {
+ var targetObj = {};
+ var obj = {
+ 0: targetObj,
+ 4294967294: targetObj,
+ 4294967295: targetObj,
+ length: 4294967296
+ };
+
+ return Array.prototype.indexOf.call(obj, targetObj) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-29.js
new file mode 100644
index 000000000..397fae9ec
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-29.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-29.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is boundary value (2^32 + 1)",
+
+ test: function testcase() {
+ var targetObj = {};
+ var obj = {
+ 0: targetObj,
+ 1: 4294967297,
+ length: 4294967297
+ };
+
+ return Array.prototype.indexOf.call(obj, targetObj) === 0 &&
+ Array.prototype.indexOf.call(obj, 4294967297) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-3.js
new file mode 100644
index 000000000..d0da0394d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-3.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-3.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is a number (value is 0)",
+
+ test: function testcase() {
+
+ var obj = { 0: true, length: 0 };
+
+ return Array.prototype.indexOf.call(obj, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-4.js
new file mode 100644
index 000000000..b89cae651
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-4.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-4.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is a number (value is +0)",
+
+ test: function testcase() {
+
+ var obj = { 0: true, length: +0 };
+
+ return Array.prototype.indexOf.call(obj, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-5.js
new file mode 100644
index 000000000..479f9c5cb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-5.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-5.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is a number (value is -0)",
+
+ test: function testcase() {
+
+ var obj = { 0: true, length: -0 };
+
+ return Array.prototype.indexOf.call(obj, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-6.js
new file mode 100644
index 000000000..e308bbbe0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-6.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-6.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is a number (value is positive)",
+
+ test: function testcase() {
+
+ var obj = { 3: true, 4: false, length: 4 };
+
+ return Array.prototype.indexOf.call(obj, true) === 3 &&
+ Array.prototype.indexOf.call(obj, false) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-7.js
new file mode 100644
index 000000000..adc32f664
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-7.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-7.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is a number (value is negative)",
+
+ test: function testcase() {
+
+ var obj = { 4: true, 5: false, length: 5 - Math.pow(2, 32) };
+
+ return Array.prototype.indexOf.call(obj, true) === 4 &&
+ Array.prototype.indexOf.call(obj, false) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-8.js
new file mode 100644
index 000000000..fd1e33e58
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-8.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-8.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is a number (value is Infinity)",
+
+ test: function testcase() {
+
+ var obj = { 0: 0, length: Infinity };
+
+ return Array.prototype.indexOf.call(obj, 0) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-9.js
new file mode 100644
index 000000000..f3abd2d98
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-9.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-3-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-3-9.js",
+
+ description: "Array.prototype.indexOf - value of 'length' is a number (value is -Infinity)",
+
+ test: function testcase() {
+
+ var obj = { 0: 0, length: -Infinity };
+
+ return Array.prototype.indexOf.call(obj, 0) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-1.js
new file mode 100644
index 000000000..4f9d9fc35
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-1.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-4-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-1.js",
+
+description: "Array.prototype.indexOf returns -1 if 'length' is 0 (empty array)",
+
+test: function testcase() {
+ var i = [].indexOf(42);
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-10.js
new file mode 100644
index 000000000..cf53e080c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-10.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-4-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-10.js",
+
+ description: "Array.prototype.indexOf - 'length' is a number of value -6e-1",
+
+ test: function testcase() {
+ var targetObj = [];
+ var obj = { 0: targetObj, 100: targetObj, length: -6e-1 };
+ return Array.prototype.indexOf.call(obj, targetObj) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-11.js
new file mode 100644
index 000000000..0d9ce6381
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-11.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-4-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-11.js",
+
+ description: "Array.prototype.indexOf - 'length' is an empty string",
+
+ test: function testcase() {
+ var targetObj = [];
+ var obj = { 0: targetObj, 100: targetObj, length: "" };
+ return Array.prototype.indexOf.call(obj, targetObj) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-2.js
new file mode 100644
index 000000000..319f332e5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-2.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-4-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-2.js",
+
+description: "Array.prototype.indexOf returns -1 if 'length' is 0 ( length overridden to null (type conversion))",
+
+test: function testcase() {
+
+ var i = Array.prototype.indexOf.call({length: null}, 1);
+
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-3.js
new file mode 100644
index 000000000..bc8232d7c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-3.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-4-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-3.js",
+
+description: "Array.prototype.indexOf returns -1 if 'length' is 0 (length overridden to false (type conversion))",
+
+test: function testcase() {
+
+ var i = Array.prototype.indexOf.call({length: false}, 1);
+
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-4.js
new file mode 100644
index 000000000..b3c1432dd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-4.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-4-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-4.js",
+
+description: "Array.prototype.indexOf returns -1 if 'length' is 0 (generic 'array' with length 0 )",
+
+test: function testcase() {
+
+ var i = Array.prototype.lastIndexOf.call({length: 0}, 1);
+
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-5.js
new file mode 100644
index 000000000..221bfb422
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-5.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-4-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-5.js",
+
+description: "Array.prototype.indexOf returns -1 if 'length' is 0 ( length overridden to '0' (type conversion))",
+
+test: function testcase() {
+
+ var i = Array.prototype.indexOf.call({length: '0'}, 1);
+
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-6.js
new file mode 100644
index 000000000..153a201d3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-6.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-4-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-6.js",
+
+description: "Array.prototype.indexOf returns -1 if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)",
+
+test: function testcase() {
+
+ var i = Array.prototype.indexOf.call({length: { valueOf: function () { return 0;}}}, 1);
+
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-7.js
new file mode 100644
index 000000000..8639579ba
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-7.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-4-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-7.js",
+
+description: "Array.prototype.indexOf returns -1 if 'length' is 0 ( length is object overridden with obj w/o valueOf (toString))",
+
+test: function testcase() {
+
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ var i = Array.prototype.indexOf.call({length: { toString: function () { return '0';}}}, 1);
+
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-8.js
new file mode 100644
index 000000000..715b20599
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-8.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-4-8",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-8.js",
+
+description: "Array.prototype.indexOf returns -1 if 'length' is 0 (length is an empty array)",
+
+test: function testcase() {
+
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+ var i = Array.prototype.indexOf.call({length: [ ]}, 1);
+
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-9.js
new file mode 100644
index 000000000..d419a1d59
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-9.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-4-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-4-9.js",
+
+ description: "Array.prototype.indexOf - 'length' is a number of value 0.1",
+
+ test: function testcase() {
+ var targetObj = [];
+ var obj = { 0: targetObj, 100: targetObj, length: 0.1 };
+ return Array.prototype.indexOf.call(obj, targetObj) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-1.js
new file mode 100644
index 000000000..e3945deb6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-1.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-5-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-1.js",
+
+description: "Array.prototype.indexOf when fromIndex is string",
+
+test: function testcase() {
+ var a = [1,2,1,2,1,2];
+ if (a.indexOf(2,"2") === 3 && // "2" resolves to 2
+ a.indexOf(2,"one") === 1) { // "one" resolves to 0
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-10.js
new file mode 100644
index 000000000..6c5fdabae
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-10.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-10.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is positive number)",
+
+ test: function testcase() {
+ var targetObj = {};
+ return [0, targetObj, 2].indexOf(targetObj, 2) === -1 &&
+ [0, 1, targetObj].indexOf(targetObj, 2) === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-11.js
new file mode 100644
index 000000000..cbc1e395c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-11.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-11.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is negative number)",
+
+ test: function testcase() {
+ var targetObj = {};
+ return [0, targetObj, 2].indexOf(targetObj, -1) === -1 &&
+ [0, 1, targetObj].indexOf(targetObj, -1) === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-12.js
new file mode 100644
index 000000000..822227e25
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-12.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-12.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is Infinity)",
+
+ test: function testcase() {
+ var arr = [];
+ arr[Math.pow(2, 32) - 2] = true; //length is the max value of Uint type
+ return arr.indexOf(true, Infinity) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-13.js
new file mode 100644
index 000000000..8f628c58f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-13.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-13.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is -Infinity)",
+
+ test: function testcase() {
+
+ return [true].indexOf(true, -Infinity) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-14.js
new file mode 100644
index 000000000..9e47c2d1c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-14.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-14.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is NaN)",
+
+ test: function testcase() {
+
+ return [true].indexOf(true, NaN) === 0 && [true].indexOf(true, -NaN) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-15.js
new file mode 100644
index 000000000..77843d427
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-15.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-15.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is a string containing a negative number",
+
+ test: function testcase() {
+
+ return [0, true, 2].indexOf(true, "-1") === -1 &&
+ [0, 1, true].indexOf(true, "-1") === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-16.js
new file mode 100644
index 000000000..287d199dc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-16.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-16.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is a string containing Infinity",
+
+ test: function testcase() {
+ var arr = [];
+ arr[Math.pow(2, 32) - 2] = true; //length is the max value of Uint type
+ return arr.indexOf(true, "Infinity") === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-17.js
new file mode 100644
index 000000000..e961c976d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-17.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-17.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is a string containing -Infinity",
+
+ test: function testcase() {
+
+ return [true].indexOf(true, "-Infinity") === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-18.js
new file mode 100644
index 000000000..a27465ddf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-18.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-18.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is a string containing an exponential number",
+
+ test: function testcase() {
+ var targetObj = {};
+ return [0, 1, targetObj, 3, 4].indexOf(targetObj, "3E0") === -1 &&
+ [0, 1, 2, targetObj, 4].indexOf(targetObj, "3E0") === 3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-19.js
new file mode 100644
index 000000000..bb6c89768
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-19.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-19.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is a string containing a hex number",
+
+ test: function testcase() {
+ var targetObj = {};
+ return [0, 1, targetObj, 3, 4].indexOf(targetObj, "0x0003") === -1 &&
+ [0, 1, 2, targetObj, 4].indexOf(targetObj, "0x0003") === 3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-2.js
new file mode 100644
index 000000000..0e0e694eb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-2.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-5-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-2.js",
+
+description: "Array.prototype.indexOf when fromIndex is floating point number",
+
+test: function testcase() {
+ var a = new Array(1,2,3);
+ if (a.indexOf(3,0.49) === 2 && // 0.49 resolves to 0
+ a.indexOf(1,0.51) === 0 && // 0.51 resolves to 0
+ a.indexOf(1,1.51) === -1) { // 1.01 resolves to 1
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-20.js
new file mode 100644
index 000000000..0b1b3c7dd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-20.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-20.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' which is a string containing a number with leading zeros",
+
+ test: function testcase() {
+ var targetObj = {};
+ return [0, 1, targetObj, 3, 4].indexOf(targetObj, "0003.10") === -1 &&
+ [0, 1, 2, targetObj, 4].indexOf(targetObj, "0003.10") === 3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-21.js
new file mode 100644
index 000000000..599e72eba
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-21.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-21.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is an Object, which has an own toString method",
+
+ test: function testcase() {
+
+ // objects inherit the default valueOf() method from Object
+ // that simply returns itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ var fromIndex = {
+ toString: function () {
+ return '1';
+ }
+ };
+
+ return [0, true].indexOf(true, fromIndex) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-22.js
new file mode 100644
index 000000000..ba673c249
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-22.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-22.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is an Object, which has an own valueOf method",
+
+ test: function testcase() {
+
+ var fromIndex = {
+ valueOf: function () {
+ return 1;
+ }
+ };
+
+
+ return [0, true].indexOf(true, fromIndex) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-23.js
new file mode 100644
index 000000000..33cb48db2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-23.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-23.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is an object that has an own valueOf method that returns an object and toString method that returns a string",
+
+ test: function testcase() {
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var fromIndex = {
+ toString: function () {
+ toStringAccessed = true;
+ return '1';
+ },
+
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ }
+ };
+
+ return [0, true].indexOf(true, fromIndex) === 1 && toStringAccessed && valueOfAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-24.js
new file mode 100644
index 000000000..4f1b7ef69
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-24.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-24.js",
+
+ description: "Array.prototype.indexOf throws TypeError exception when value of 'fromIndex' is an object with toString and valueOf methods that don’t return primitive values",
+
+ test: function testcase() {
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+ var fromIndex = {
+ toString: function () {
+ toStringAccessed = true;
+ return {};
+ },
+
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ }
+ };
+
+ try {
+ [0, true].indexOf(true, fromIndex);
+ return false;
+ } catch (e) {
+ return toStringAccessed && valueOfAccessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-25.js
new file mode 100644
index 000000000..aa4eecb3a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-25.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-25.js",
+
+ description: "Array.prototype.indexOf uses inherited valueOf method when value of 'fromIndex' is an object with an own toString and inherited valueOf methods",
+
+ test: function testcase() {
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var proto = {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 1;
+ }
+ };
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.toString = function () {
+ toStringAccessed = true;
+ return 2;
+ };
+
+ return [0, true].indexOf(true, child) === 1 && valueOfAccessed && !toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-26.js
new file mode 100644
index 000000000..c33d5a794
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-26.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-26.js",
+
+ description: "Array.prototype.indexOf - side effects produced by step 2 are visible when an exception occurs",
+
+ test: function testcase() {
+ var stepTwoOccurs = false;
+ var stepFiveOccurs = false;
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ stepTwoOccurs = true;
+ if (stepFiveOccurs) {
+ throw new Error("Step 5 occurred out of order");
+ }
+ return 20;
+ },
+ configurable: true
+ });
+
+ var fromIndex = {
+ valueOf: function () {
+ stepFiveOccurs = true;
+ return 0;
+ }
+ };
+
+ try {
+ Array.prototype.indexOf.call(obj, undefined, fromIndex);
+ return stepTwoOccurs && stepFiveOccurs;
+ } catch (ex) {
+ return false;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-27.js
new file mode 100644
index 000000000..1a08e86ce
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-27.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-27.js",
+
+ description: "Array.prototype.indexOf - side effects produced by step 3 are visible when an exception occurs",
+
+ test: function testcase() {
+ var stepThreeOccurs = false;
+ var stepFiveOccurs = false;
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ valueOf: function () {
+ stepThreeOccurs = true;
+ if (stepFiveOccurs) {
+ throw new Error("Step 5 occurred out of order");
+ }
+ return 20;
+ }
+ };
+ },
+ configurable: true
+ });
+
+ var fromIndex = {
+ valueOf: function () {
+ stepFiveOccurs = true;
+ return 0;
+ }
+ };
+
+ try {
+ Array.prototype.indexOf.call(obj, undefined, fromIndex);
+ return stepThreeOccurs && stepFiveOccurs;
+ } catch (ex) {
+ return false;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-28.js
new file mode 100644
index 000000000..6e908e9a8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-28.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-28.js",
+
+ description: "Array.prototype.indexOf - side effects produced by step 1 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var stepFiveOccurs = false;
+ var fromIndex = {
+ valueOf: function () {
+ stepFiveOccurs = true;
+ return 0;
+ }
+ };
+
+ try {
+ Array.prototype.indexOf.call(undefined, undefined, fromIndex);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError) && !stepFiveOccurs;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-29.js
new file mode 100644
index 000000000..99e9c937f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-29.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-29.js",
+
+ description: "Array.prototype.indexOf - side effects produced by step 2 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var stepFiveOccurs = false;
+
+ var obj = {};
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new RangeError();
+ },
+ configurable: true
+ });
+
+ var fromIndex = {
+ valueOf: function () {
+ stepFiveOccurs = true;
+ return 0;
+ }
+ };
+
+ try {
+ Array.prototype.indexOf.call(obj, undefined, fromIndex);
+ return false;
+ } catch (e) {
+ return (e instanceof RangeError) && !stepFiveOccurs;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-3.js
new file mode 100644
index 000000000..459f2f005
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-3.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-5-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-3.js",
+
+description: "Array.prototype.indexOf when fromIndex is boolean",
+
+test: function testcase() {
+ var a = [1,2,3];
+ if (a.indexOf(1,true) === -1 && // true resolves to 1
+ a.indexOf(1,false) === 0 ) { // false resolves to 0
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-30.js
new file mode 100644
index 000000000..dd3be94af
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-30.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-30.js",
+
+ description: "Array.prototype.indexOf - side effects produced by step 3 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var stepFiveOccurs = false;
+
+ var obj = {};
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ valueOf: function () {
+ throw new TypeError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ var fromIndex = {
+ valueOf: function () {
+ stepFiveOccurs = true;
+ return 0;
+ }
+ };
+
+ try {
+ Array.prototype.indexOf.call(obj, undefined, fromIndex);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError) && !stepFiveOccurs;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-31.js
new file mode 100644
index 000000000..4adabc6ae
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-31.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-31.js",
+
+ description: "Array.prototype.indexOf - 'fromIndex' is a positive non-integer, verify truncation occurs in the proper direction",
+
+ test: function testcase() {
+ var targetObj = {};
+ return [0, targetObj, 2].indexOf(targetObj, 2.5) === -1 &&
+ [0, 1, targetObj].indexOf(targetObj, 2.5) === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-32.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-32.js
new file mode 100644
index 000000000..99a80e265
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-32.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-32",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-32.js",
+
+ description: "Array.prototype.indexOf - 'fromIndex' is a negative non-integer, verify truncation occurs in the proper direction",
+
+ test: function testcase() {
+ var targetObj = {};
+ return [0, targetObj, 2].indexOf(targetObj, -1.5) === -1 &&
+ [0, 1, targetObj].indexOf(targetObj, -1.5) === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-33.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-33.js
new file mode 100644
index 000000000..47ab681d9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-33.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-33",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-33.js",
+
+ description: "Array.prototype.indexOf match on the first element, a middle element and the last element when 'fromIndex' is passed",
+
+ test: function testcase() {
+
+ return [0, 1, 2, 3, 4].indexOf(0, 0) === 0 &&
+ [0, 1, 2, 3, 4].indexOf(2, 1) === 2 &&
+ [0, 1, 2, 3, 4].indexOf(2, 2) === 2 &&
+ [0, 1, 2, 3, 4].indexOf(4, 2) === 4 &&
+ [0, 1, 2, 3, 4].indexOf(4, 4) === 4;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-4.js
new file mode 100644
index 000000000..570445fd4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-4.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-5-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-4.js",
+
+description: "Array.prototype.indexOf returns 0 if fromIndex is 'undefined'",
+
+test: function testcase() {
+ var a = [1,2,3];
+ if (a.indexOf(1,undefined) === 0) { // undefined resolves to 0
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-5.js
new file mode 100644
index 000000000..60afa9ce4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-5.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-5-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-5.js",
+
+description: "Array.prototype.indexOf returns 0 if fromIndex is null",
+
+test: function testcase() {
+ var a = [1,2,3];
+ if (a.indexOf(1,null) === 0 ) { // null resolves to 0
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-6.js
new file mode 100644
index 000000000..7ded3b36f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-6.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-6.js",
+
+ description: "Array.prototype.indexOf - 'fromIndex' isn't passed",
+
+ test: function testcase() {
+ var arr = [0, 1, 2, 3, 4];
+ //'fromIndex' will be set as 0 if not passed by default
+ return arr.indexOf(0) === arr.indexOf(0, 0) &&
+ arr.indexOf(2) === arr.indexOf(2, 0) &&
+ arr.indexOf(4) === arr.indexOf(4, 0);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-7.js
new file mode 100644
index 000000000..589475ca7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-7.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-7.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is 0)",
+
+ test: function testcase() {
+
+ return [true].indexOf(true, 0) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-8.js
new file mode 100644
index 000000000..052af7364
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-8.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-8.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is +0)",
+
+ test: function testcase() {
+
+ return [true].indexOf(true, +0) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-9.js
new file mode 100644
index 000000000..749167b2d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-9.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-5-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-5-9.js",
+
+ description: "Array.prototype.indexOf - value of 'fromIndex' is a number (value is -0)",
+
+ test: function testcase() {
+
+ return [true].indexOf(true, -0) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-6-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-6-1.js
new file mode 100644
index 000000000..511ab4598
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-6-1.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-6-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-6-1.js",
+
+description: "Array.prototype.indexOf returns -1 if fromIndex is greater than Array length",
+
+test: function testcase() {
+ var a = [1,2,3];
+ if (a.indexOf(1,5) === -1 &&
+ a.indexOf(1,3) === -1 &&
+ [ ].indexOf(1,0) === -1 ){
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-1.js
new file mode 100644
index 000000000..67dc11523
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-1.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-7-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-1.js",
+
+ description: "Array.prototype.indexOf returns -1 when 'fromIndex' is length of array - 1",
+
+ test: function testcase() {
+
+ return [1, 2, 3].indexOf(1, 2) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-2.js
new file mode 100644
index 000000000..f0f900738
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-2.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-7-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-2.js",
+
+ description: "Array.prototype.indexOf returns correct index when 'fromIndex' is length of array - 1",
+
+ test: function testcase() {
+
+ return [1, 2, 3].indexOf(3, 2) === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-3.js
new file mode 100644
index 000000000..de96757c0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-3.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-7-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-3.js",
+
+ description: "Array.prototype.indexOf returns -1 when 'fromIndex' and 'length' are both 0",
+
+ test: function testcase() {
+
+ return [].indexOf(1, 0) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-4.js
new file mode 100644
index 000000000..ded6843e0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-4.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-7-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-4.js",
+
+ description: "Array.prototype.indexOf returns -1 when 'fromIndex' is 1",
+
+ test: function testcase() {
+
+ return [1, 2, 3].indexOf(1, 1) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-5.js
new file mode 100644
index 000000000..a54936f91
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-5.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-7-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-7-5.js",
+
+ description: "Array.prototype.indexOf returns correct index when 'fromIndex' is 1",
+
+ test: function testcase() {
+
+ return [1, 2, 3].indexOf(2, 1) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-1.js
new file mode 100644
index 000000000..ce8ef36b3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-1.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-8-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-1.js",
+
+description: "Array.prototype.indexOf with negative fromIndex",
+
+test: function testcase() {
+ var a = new Array(1,2,3);
+
+ if (a.indexOf(2,-1) === -1 &&
+ a.indexOf(2,-2) === 1 &&
+ a.indexOf(1,-3) === 0 &&
+ a.indexOf(1,-5.3) === 0 ) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-2.js
new file mode 100644
index 000000000..d4e2c0102
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-2.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-8-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-2.js",
+
+ description: "Array.prototype.indexOf returns correct index when 'fromIndex' is -1",
+
+ test: function testcase() {
+
+ return [1, 2, 3, 4].indexOf(4, -1) === 3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-3.js
new file mode 100644
index 000000000..f66bdb5b3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-3.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-8-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-3.js",
+
+ description: "Array.prototype.indexOf returns -1 when abs('fromIndex') is length of array - 1",
+
+ test: function testcase() {
+
+ return [1, 2, 3, 4].indexOf(1, -3) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-4.js
new file mode 100644
index 000000000..32ef21e2d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-4.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-8-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-8-4.js",
+
+ description: "Array.prototype.indexOf returns -1 when abs('fromIndex') is length of array",
+
+ test: function testcase() {
+
+ return [1, 2, 3, 4].indexOf(0, -4) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-1.js
new file mode 100644
index 000000000..aa657b083
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-1.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-9-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-1.js",
+
+description: "Array.prototype.indexOf must return correct index (boolean)",
+
+test: function testcase() {
+ var obj = {toString:function (){return true}};
+ var _false = false;
+ var a = [obj,"true", undefined,0,_false,null,1,"str",0,1,true,false,true,false];
+ if (a.indexOf(true) === 10 && //a[10]=true
+ a.indexOf(false) === 4) //a[4] =_false
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-10.js
new file mode 100644
index 000000000..e5b5bea4e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-10.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/** note that prior to the finally ES5 draft SameValue was used for comparisions
+and hence NaNs could be found using indexOf **/
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-9-10",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-10.js",
+
+description: "Array.prototype.indexOf must return correct index (NaN)",
+
+test: function testcase() {
+ var _NaN = NaN;
+ var a = new Array("NaN",undefined,0,false,null,{toString:function (){return NaN}},"false",_NaN,NaN);
+ if (a.indexOf(NaN) === -1) // NaN is equal to nothing, including itself.
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-11.js
new file mode 100644
index 000000000..eebcf44ae
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-11.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-11.js",
+
+ description: "Array.prototype.indexOf - the length of iteration isn't changed by adding elements to the array during iteration",
+
+ test: function testcase() {
+
+ var arr = [20];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr[1] = 1;
+ return 0;
+ },
+ configurable: true
+ });
+
+ return arr.indexOf(1) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-2.js
new file mode 100644
index 000000000..e4f445742
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-2.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-9-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-2.js",
+
+description: "Array.prototype.indexOf must return correct index (Number)",
+
+test: function testcase() {
+ var obj = {toString:function (){return 0}};
+ var one = 1;
+ var _float = -(4/3);
+ var a = new Array(false,undefined,null,"0",obj,-1.3333333333333, "str",-0,true,+0, one, 1,0, false, _float, -(4/3));
+ if (a.indexOf(-(4/3)) === 14 && // a[14]=_float===-(4/3)
+ a.indexOf(0) === 7 && // a[7] = +0, 0===+0
+ a.indexOf(-0) === 7 && // a[7] = +0, -0===+0
+ a.indexOf(1) === 10 ) // a[10] =one=== 1
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-3.js
new file mode 100644
index 000000000..a0c9bdb16
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-3.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-9-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-3.js",
+
+description: "Array.prototype.indexOf must return correct index(string)",
+
+test: function testcase() {
+ var obj = {toString:function (){return "false"}};
+ var szFalse = "false";
+ var a = new Array("false1",undefined,0,false,null,1,obj,0,szFalse, "false");
+ if (a.indexOf("false") === 8) //a[8]=szFalse
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-4.js
new file mode 100644
index 000000000..03d3ec127
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-4.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-9-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-4.js",
+
+description: "Array.prototype.indexOf must return correct index(undefined)",
+
+test: function testcase() {
+ var obj = {toString:function (){return undefined;}};
+ var _undefined1 = undefined;
+ var _undefined2;
+ var a = new Array(true,0,false,null,1,"undefined",obj,1,_undefined2,_undefined1,undefined);
+ if (a.indexOf(undefined) === 8) //a[8]=_undefined2
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-5.js
new file mode 100644
index 000000000..dbbf52033
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-5.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-9-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-5.js",
+
+description: "Array.prototype.indexOf must return correct index (Object)",
+
+test: function testcase() {
+ var obj1 = {toString:function (){return "false"}};
+ var obj2 = {toString:function (){return "false"}};
+ var obj3 = obj1;
+ var a = new Array(false,undefined,0,false,null,{toString:function (){return "false"}},"false",obj2,obj1,obj3);
+ if (a.indexOf(obj3) === 8) //a[8] = obj1;
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-6.js
new file mode 100644
index 000000000..886b92b4d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-6.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-9-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-6.js",
+
+description: "Array.prototype.indexOf must return correct index(null)",
+
+test: function testcase() {
+ var obj = {toString:function (){return null}};
+ var _null = null;
+ var a = new Array(true,undefined,0,false,_null,1,"str",0,1,obj,true,false,null);
+ if (a.indexOf(null) === 4 ) //a[4]=_null
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-7.js
new file mode 100644
index 000000000..fb6e4ef29
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-7.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-9-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-7.js",
+
+description: "Array.prototype.indexOf must return correct index (self reference)",
+
+test: function testcase() {
+ var a = new Array(0,1,2,3);
+ a[2] = a;
+ if (a.indexOf(a) === 2 &&
+ a.indexOf(3) === 3 )
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-8.js
new file mode 100644
index 000000000..fd8fc637e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-8.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-9-8",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-8.js",
+
+description: "Array.prototype.indexOf must return correct index (Array)",
+
+test: function testcase() {
+ var b = new Array("0,1");
+ var a = new Array(0,b,"0,1",3);
+ if (a.indexOf(b.toString()) === 2 &&
+ a.indexOf("0,1") === 2 )
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-9.js
new file mode 100644
index 000000000..368d91aaa
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-9.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.14-9-9",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-9.js",
+
+description: "Array.prototype.indexOf must return correct index (Sparse Array)",
+
+test: function testcase() {
+ var a = new Array(0,1);
+ a[4294967294] = 2; // 2^32-2 - is max array element
+ a[4294967295] = 3; // 2^32-1 added as non-array element property
+ a[4294967296] = 4; // 2^32 added as non-array element property
+ a[4294967297] = 5; // 2^32+1 added as non-array element property
+
+ // start searching near the end so in case implementation actually tries to test all missing elements!!
+ return (a.indexOf(2,4294967290 ) === 4294967294 &&
+ a.indexOf(3,4294967290) === -1 &&
+ a.indexOf(4,4294967290) === -1 &&
+ a.indexOf(5,4294967290) === -1 ) ;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-1.js
new file mode 100644
index 000000000..a7e8a4a12
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-1.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-1.js",
+
+ description: "Array.prototype.indexOf - added properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ var arr = { };
+
+ Object.defineProperty(arr, "length", {
+ get: function () {
+ arr[2] = "length";
+ return 3;
+ },
+ configurable: true
+ });
+
+ return 2 === Array.prototype.indexOf.call(arr, "length");
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-10.js
new file mode 100644
index 000000000..d6dc359d6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-10.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-10.js",
+
+ description: "Array.prototype.indexOf - properties can be added to prototype after current position are visited on an Array",
+
+ test: function testcase() {
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ return arr.indexOf(6.99) === 1;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-11.js
new file mode 100644
index 000000000..edd1c9bac
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-11.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-11.js",
+
+ description: "Array.prototype.indexOf - deleting own property causes index property not to be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var arr = { length: 2 };
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ return -1 === Array.prototype.indexOf.call(arr, 6.99);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-12.js
new file mode 100644
index 000000000..1c3adcf8a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-12.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-12.js",
+
+ description: "Array.prototype.indexOf - deleting own property causes index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ var arr = [1, 2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "6.99";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ return -1 === arr.indexOf("6.99");
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-13.js
new file mode 100644
index 000000000..8b88d9ac8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-13.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-13.js",
+
+ description: "Array.prototype.indexOf - deleting property of prototype causes prototype index property not to be visited on an Array-like Object",
+
+ test: function testcase() {
+
+ var arr = { 2: 2, length: 20 };
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete Object.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ return -1 === Array.prototype.indexOf.call(arr, 1);
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-14.js
new file mode 100644
index 000000000..df428a770
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-14.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-14.js",
+
+ description: "Array.prototype.indexOf - deleting property of prototype causes prototype index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete Array.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ return -1 === arr.indexOf(1);
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-15.js
new file mode 100644
index 000000000..610af4559
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-15.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-15.js",
+
+ description: "Array.prototype.indexOf - deleting own property with prototype property causes prototype index property to be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var arr = { 0: 0, 1: 111, 2: 2, length: 10 };
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ return 1 === Array.prototype.indexOf.call(arr, 1);
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-16.js
new file mode 100644
index 000000000..28eb59ce5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-16.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-16.js",
+
+ description: "Array.prototype.indexOf - deleting own property with prototype property causes prototype index property to be visited on an Array",
+
+ test: function testcase() {
+
+ var arr = [0, 111, 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ return 1 === arr.indexOf(1);
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-17.js
new file mode 100644
index 000000000..7bdb538dd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-17.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-17.js",
+
+ description: "Array.prototype.indexOf - decreasing length of array causes index property not to be visited",
+
+ test: function testcase() {
+
+ var arr = [0, 1, 2, "last"];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr.length = 3;
+ return 0;
+ },
+ configurable: true
+ });
+
+ return -1 === arr.indexOf("last");
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-18.js
new file mode 100644
index 000000000..2ef145291
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-18.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-18.js",
+
+ description: "Array.prototype.indexOf - decreasing length of array with prototype property causes prototype index property to be visited",
+
+ test: function testcase() {
+
+ var arr = [0, 1, 2];
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "prototype";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ return 2 === arr.indexOf("prototype");
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-19.js
new file mode 100644
index 000000000..387bc0eb4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-19.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-19.js",
+
+ description: "Array.prototype.indexOf - decreasing length of array does not delete non-configurable properties",
+
+ test: function testcase() {
+
+ var arr = [0, 1, 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "unconfigurable";
+ },
+ configurable: false
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ return 2 === arr.indexOf("unconfigurable");
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-2.js
new file mode 100644
index 000000000..805f65757
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-2.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-2.js",
+
+ description: "Array.prototype.indexOf - added properties in step 5 are visible here on an Array-like object",
+
+ test: function testcase() {
+
+ var arr = { length: 30 };
+ var targetObj = function () { };
+
+ var fromIndex = {
+ valueOf: function () {
+ arr[4] = targetObj;
+ return 3;
+ }
+ };
+
+ return 4 === Array.prototype.indexOf.call(arr, targetObj, fromIndex);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-3.js
new file mode 100644
index 000000000..1e5aabbc9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-3.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-3.js",
+
+ description: "Array.prototype.indexOf - added properties in step 5 are visible here on an Array",
+
+ test: function testcase() {
+
+ var arr = [];
+ arr.length = 30;
+ var targetObj = function () { };
+
+ var fromIndex = {
+ valueOf: function () {
+ arr[4] = targetObj;
+ return 3;
+ }
+ };
+
+ return 4 === arr.indexOf(targetObj, fromIndex);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-4.js
new file mode 100644
index 000000000..039e933c7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-4.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-4.js",
+
+ description: "Array.prototype.indexOf - deleted properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ var arr = { 2: 6.99 };
+
+ Object.defineProperty(arr, "length", {
+ get: function () {
+ delete arr[2];
+ return 3;
+ },
+ configurable: true
+ });
+
+ return -1 === Array.prototype.indexOf.call(arr, 6.99);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-5.js
new file mode 100644
index 000000000..cd77a3270
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-5.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-5.js",
+
+ description: "Array.prototype.indexOf - deleted properties in step 5 are visible here on an Array-like object",
+
+ test: function testcase() {
+
+ var arr = { 10: false, length: 30 };
+
+ var fromIndex = {
+ valueOf: function () {
+ delete arr[10];
+ return 3;
+ }
+ };
+
+ return -1 === Array.prototype.indexOf.call(arr, false, fromIndex);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-6.js
new file mode 100644
index 000000000..d2a61274c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-6.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-6.js",
+
+ description: "Array.prototype.indexOf - deleted properties in step 5 are visible here on an Array",
+
+ test: function testcase() {
+
+ var arr = [];
+ arr[10] = "10";
+ arr.length = 20;
+
+ var fromIndex = {
+ valueOf: function () {
+ delete arr[10];
+ return 3;
+ }
+ };
+
+ return -1 === arr.indexOf("10", fromIndex);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-7.js
new file mode 100644
index 000000000..95f3f7cc5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-7.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-7.js",
+
+ description: "Array.prototype.indexOf - properties added into own object after current position are visited on an Array-like object",
+
+ test: function testcase() {
+
+ var arr = { length: 2 };
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.indexOf.call(arr, 1) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-8.js
new file mode 100644
index 000000000..822cdf95c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-8.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-8.js",
+
+ description: "Array.prototype.indexOf - properties added into own object after current position are visited on an Array",
+
+ test: function testcase() {
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ return arr.indexOf(1) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-9.js
new file mode 100644
index 000000000..20724dd1f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-9.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-a-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-a-9.js",
+
+ description: "Array.prototype.indexOf - properties can be added to prototype after current position are visited on an Array-like object",
+
+ test: function testcase() {
+
+ var arr = { length: 2 };
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ return Array.prototype.indexOf.call(arr, 6.99) === 1;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-1.js
new file mode 100644
index 000000000..466abfffd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-1.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-1.js",
+
+ description: "Array.prototype.indexOf - non-existent property wouldn't be called",
+
+ test: function testcase() {
+
+ return [0, , 2].indexOf(undefined) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-1.js
new file mode 100644
index 000000000..270be418d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-1.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-1.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own data property on an Array-like object",
+
+ test: function testcase() {
+ var obj = { 0: 0, 1: 1, 2: 2, length: 3 };
+ return Array.prototype.indexOf.call(obj, 0) === 0 &&
+ Array.prototype.indexOf.call(obj, 1) === 1 &&
+ Array.prototype.indexOf.call(obj, 2) === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-10.js
new file mode 100644
index 000000000..9de661067
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-10.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-10.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var obj = { length: 3 };
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ return 0 === Array.prototype.indexOf.call(obj, 0) &&
+ 1 === Array.prototype.indexOf.call(obj, 1) &&
+ 2 === Array.prototype.indexOf.call(obj, 2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-11.js
new file mode 100644
index 000000000..5286d5b01
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-11.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-11.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own accessor property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var arr = [];
+ try {
+ Array.prototype[0] = false;
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return true;
+ },
+ configurable: true
+ });
+
+ return 0 === arr.indexOf(true);
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-12.js
new file mode 100644
index 000000000..1e5709b88
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-12.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-12.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+ var obj = { length: 1 };
+
+ try {
+ Object.prototype[0] = false;
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return true;
+ },
+ configurable: true
+ });
+
+ return 0 === Array.prototype.indexOf.call(obj, true);
+ } finally {
+ delete Object.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-13.js
new file mode 100644
index 000000000..94b1a0c4b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-13.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-13.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var arr = [];
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return false;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return true;
+ },
+ configurable: true
+ });
+
+ return 0 === arr.indexOf(true);
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-14.js
new file mode 100644
index 000000000..fe1ff6960
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-14.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-14.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var obj = { length: 1 };
+
+ try {
+ Object.defineProperty(Object.prototype, "0", {
+ get: function () {
+ return false;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return true;
+ },
+ configurable: true
+ });
+
+ return 0 === Array.prototype.indexOf.call(obj, true);
+ } finally {
+ delete Object.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-15.js
new file mode 100644
index 000000000..00aafee3e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-15.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-15.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is inherited accessor property on an Array",
+
+ test: function testcase() {
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 10;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 20;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return 30;
+ },
+ configurable: true
+ });
+
+ return 0 === [, , , ].indexOf(10) &&
+ 1 === [, , , ].indexOf(20) &&
+ 2 === [, , , ].indexOf(30);
+ } finally {
+ delete Array.prototype[0];
+ delete Array.prototype[1];
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-16.js
new file mode 100644
index 000000000..0d21f9fbd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-16.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-16.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ try {
+ Object.defineProperty(Object.prototype, "0", {
+ get: function () {
+ return 10;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 20;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(Object.prototype, "2", {
+ get: function () {
+ return 30;
+ },
+ configurable: true
+ });
+
+ return 0 === Array.prototype.indexOf.call({ length: 3 }, 10) &&
+ 1 === Array.prototype.indexOf.call({ length: 3 }, 20) &&
+ 2 === Array.prototype.indexOf.call({ length: 3 }, 30);
+ } finally {
+ delete Object.prototype[0];
+ delete Object.prototype[1];
+ delete Object.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-17.js
new file mode 100644
index 000000000..5982a4936
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-17.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-17.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ var arr = [];
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ return arr.indexOf(undefined) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-18.js
new file mode 100644
index 000000000..ac008d150
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-18.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-18.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var obj = { length: 1 };
+ Object.defineProperty(obj, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ return 0 === Array.prototype.indexOf.call(obj, undefined);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-19.js
new file mode 100644
index 000000000..7bb564ca3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-19.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-19.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var arr = [];
+
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ return arr.indexOf(undefined) === 0;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-2.js
new file mode 100644
index 000000000..693370e33
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-2.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-2.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own data property on an Array",
+
+ test: function testcase() {
+ return [true, true, true].indexOf(true) === 0 &&
+ [false, true, true].indexOf(true) === 1 &&
+ [false, false, true].indexOf(true) === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-20.js
new file mode 100644
index 000000000..6894abb62
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-20.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-20.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var proto = {};
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 1;
+
+ Object.defineProperty(child, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.indexOf.call(child, undefined) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-21.js
new file mode 100644
index 000000000..c43a74074
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-21.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-21.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is inherited accessor property without a get function on an Array",
+
+ test: function testcase() {
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ set: function () { },
+ configurable: true
+ });
+ return 0 === [, ].indexOf(undefined);
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-22.js
new file mode 100644
index 000000000..893fbcccc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-22.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-22.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is inherited accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ try {
+ Object.defineProperty(Object.prototype, "0", {
+ set: function () { },
+ configurable: true
+ });
+ return 0 === Array.prototype.indexOf.call({ length: 1 }, undefined);
+ } finally {
+ delete Object.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-23.js
new file mode 100644
index 000000000..48462155d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-23.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-23.js",
+
+ description: "Array.prototype.indexOf - This object is the global object",
+
+ test: function testcase() {
+
+ var targetObj = {};
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = targetObj;
+ fnGlobalObject()[100] = "100";
+ fnGlobalObject()[200] = "200";
+ fnGlobalObject().length = 200;
+ return 0 === Array.prototype.indexOf.call(fnGlobalObject(), targetObj) &&
+ 100 === Array.prototype.indexOf.call(fnGlobalObject(), "100") &&
+ -1 === Array.prototype.indexOf.call(fnGlobalObject(), "200");
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[100];
+ delete fnGlobalObject()[200];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-25.js
new file mode 100644
index 000000000..84889ee50
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-25.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-25.js",
+
+ description: "Array.prototype.indexOf applied to Arguments object which implements its own property get method (number of arguments is less than number of parameters)",
+
+ test: function testcase() {
+
+ var func = function (a, b) {
+ return 0 === Array.prototype.indexOf.call(arguments, arguments[0]) &&
+ -1 === Array.prototype.indexOf.call(arguments, arguments[1]);
+ };
+
+ return func(true);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-26.js
new file mode 100644
index 000000000..27a3920d1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-26.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-26.js",
+
+ description: "Array.prototype.indexOf applied to Arguments object which implements its own property get method (number of arguments equals to number of parameters)",
+
+ test: function testcase() {
+
+ var func = function (a, b) {
+ return 0 === Array.prototype.indexOf.call(arguments, arguments[0]) &&
+ 1 === Array.prototype.indexOf.call(arguments, arguments[1]) &&
+ -1 === Array.prototype.indexOf.call(arguments, arguments[2]);
+ };
+
+ return func(0, true);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-27.js
new file mode 100644
index 000000000..badf19d6f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-27.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-27.js",
+
+ description: "Array.prototype.indexOf applied to Arguments object which implements its own property get method (number of arguments is greater than number of parameters)",
+
+ test: function testcase() {
+
+ var func = function (a, b) {
+ return 0 === Array.prototype.indexOf.call(arguments, arguments[0]) &&
+ 3 === Array.prototype.indexOf.call(arguments, arguments[3]) &&
+ -1 === Array.prototype.indexOf.call(arguments, arguments[4]);
+ };
+
+ return func(0, false, 0, true);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-28.js
new file mode 100644
index 000000000..06f36a31e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-28.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-28.js",
+
+ description: "Array.prototype.indexOf - side-effects are visible in subsequent iterations on an Array",
+
+ test: function testcase() {
+
+ var preIterVisible = false;
+ var arr = [];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ preIterVisible = true;
+ return false;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return true;
+ } else {
+ return false;
+ }
+ },
+ configurable: true
+ });
+
+ return arr.indexOf(true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-29.js
new file mode 100644
index 000000000..edb72d308
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-29.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-29.js",
+
+ description: "Array.prototype.indexOf - side-effects are visible in subsequent iterations on an Array-like object",
+
+ test: function testcase() {
+
+ var preIterVisible = false;
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ preIterVisible = true;
+ return false;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return true;
+ } else {
+ return false;
+ }
+ },
+ configurable: true
+ });
+
+ return Array.prototype.indexOf.call(obj, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-3.js
new file mode 100644
index 000000000..eec32c0db
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-3.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-3.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+ try {
+ Array.prototype[0] = false;
+ return [true].indexOf(true) === 0;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-30.js
new file mode 100644
index 000000000..b0ab76e0f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-30.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-30.js",
+
+ description: "Array.prototype.indexOf - terminates iteration on unhandled exception on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var arr = [];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ throw new TypeError();
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ accessed = true;
+ return true;
+ },
+ configurable: true
+ });
+
+ try {
+ arr.indexOf(true);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError) && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-31.js
new file mode 100644
index 000000000..dcacfc942
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-31.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-31.js",
+
+ description: "Array.prototype.indexOf - terminates iteration on unhandled exception on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ throw new TypeError();
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ accessed = true;
+ return true;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.indexOf.call(obj, true);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError) && !accessed;
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-4.js
new file mode 100644
index 000000000..eaaf8b661
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-4.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-4.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own data property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ try {
+ Object.prototype[0] = false;
+ return 0 === Array.prototype.indexOf.call({ 0: true, 1: 1, length: 2 }, true);
+ } finally {
+ delete Object.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-5.js
new file mode 100644
index 000000000..12fafcc05
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-5.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-5.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own data property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return false;
+ },
+ configurable: true
+ });
+ return 0 === [true].indexOf(true);
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-6.js
new file mode 100644
index 000000000..ff3bf9a9e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-6.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-6.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ try {
+ Object.defineProperty(Object.prototype, "0", {
+ get: function () {
+ return false;
+ },
+ configurable: true
+ });
+ return 0 === Array.prototype.indexOf.call({ 0: true, 1: 1, length: 2 }, true);
+ } finally {
+ delete Object.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-7.js
new file mode 100644
index 000000000..6ba3950bd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-7.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-7.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is inherited data property on an Array",
+
+ test: function testcase() {
+ try {
+ Array.prototype[0] = true;
+ Array.prototype[1] = false;
+ Array.prototype[2] = "true";
+ return 0 === [, , , ].indexOf(true) &&
+ 1 === [, , , ].indexOf(false) &&
+ 2 === [, , , ].indexOf("true");
+ } finally {
+ delete Array.prototype[0];
+ delete Array.prototype[1];
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && ![, 1].hasOwnProperty(0);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-8.js
new file mode 100644
index 000000000..c9d9c8efb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-8.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-8.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ try {
+ Object.prototype[0] = true;
+ Object.prototype[1] = false;
+ Object.prototype[2] = "true";
+ return 0 === Array.prototype.indexOf.call({ length: 3 }, true) &&
+ 1 === Array.prototype.indexOf.call({ length: 3 }, false) &&
+ 2 === Array.prototype.indexOf.call({ length: 3 }, "true");
+ } finally {
+ delete Object.prototype[0];
+ delete Object.prototype[1];
+ delete Object.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-9.js
new file mode 100644
index 000000000..cb02ed2c7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-9.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-i-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-i-9.js",
+
+ description: "Array.prototype.indexOf - element to be retrieved is own accessor property on an Array",
+
+ test: function testcase() {
+
+ var arr = [, , , ];
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ return arr.indexOf(0) === 0 && arr.indexOf(1) === 1 && arr.indexOf(2) === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-1.js
new file mode 100644
index 000000000..10a568899
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-1.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-ii-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-1.js",
+
+ description: "Array.prototype.indexOf - type of array element is different from type of search element",
+
+ test: function testcase() {
+
+ return ["true"].indexOf(true) === -1 &&
+ ["0"].indexOf(0) === -1 &&
+ [false].indexOf(0) === -1 &&
+ [undefined].indexOf(0) === -1 &&
+ [null].indexOf(0) === -1 &&
+ [[]].indexOf(0) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-10.js
new file mode 100644
index 000000000..1df366452
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-10.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-ii-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-10.js",
+
+ description: "Array.prototype.indexOf - both array element and search element are Boolean type, and they have same value",
+ test: function testcase() {
+
+ return [false, true].indexOf(true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-11.js
new file mode 100644
index 000000000..6f22edbd4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-11.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-ii-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-11.js",
+
+ description: "Array.prototype.indexOf - both array element and search element are Object type, and they refer to the same object",
+ test: function testcase() {
+
+ var obj1 = {};
+ var obj2 = {};
+ var obj3 = obj2;
+ return [{}, obj1, obj2].indexOf(obj3) === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-2.js
new file mode 100644
index 000000000..c8f5766db
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-2.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-ii-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-2.js",
+
+ description: "Array.prototype.indexOf - both type of array element and type of search element are Undefined",
+
+ test: function testcase() {
+
+ return [undefined].indexOf() === 0 && [undefined].indexOf(undefined) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-3.js
new file mode 100644
index 000000000..4a52228e4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-3.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-ii-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-3.js",
+
+ description: "Array.prototype.indexOf - both type of array element and type of search element are null",
+
+ test: function testcase() {
+
+ return [null].indexOf(null) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-4.js
new file mode 100644
index 000000000..31dcd8584
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-4.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-ii-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-4.js",
+
+ description: "Array.prototype.indexOf - search element is NaN",
+ test: function testcase() {
+
+ return [+NaN, NaN, -NaN].indexOf(NaN) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-5.js
new file mode 100644
index 000000000..982c51024
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-5.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-ii-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-5.js",
+
+ description: "Array.prototype.indexOf - search element is -NaN",
+ test: function testcase() {
+
+ return [+NaN, NaN, -NaN].indexOf(-NaN) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-6.js
new file mode 100644
index 000000000..b7b2a8dbd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-6.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-ii-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-6.js",
+
+ description: "Array.prototype.indexOf - array element is +0 and search element is -0",
+ test: function testcase() {
+
+ return [+0].indexOf(-0) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-7.js
new file mode 100644
index 000000000..f9d0895ef
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-7.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-ii-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-7.js",
+
+ description: "Array.prototype.indexOf - array element is -0 and search element is +0",
+ test: function testcase() {
+
+ return [-0].indexOf(+0) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-8.js
new file mode 100644
index 000000000..f64380c99
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-8.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-ii-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-8.js",
+
+ description: "Array.prototype.indexOf - both array element and search element are Number, and they have same value",
+ test: function testcase() {
+
+ return [-1, 0, 1].indexOf(1) === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-9.js
new file mode 100644
index 000000000..7c2a1fbaf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-9.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-ii-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-ii-9.js",
+
+ description: "Array.prototype.indexOf - both array element and search element are String, and they have exactly the same sequence of characters",
+ test: function testcase() {
+
+ return ["", "ab", "bca", "abc"].indexOf("abc") === 3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-1.js
new file mode 100644
index 000000000..7f30a9b0c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-1.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-iii-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-1.js",
+
+ description: "Array.prototype.indexOf - returns index of last one when more than two elements in array are eligible",
+
+ test: function testcase() {
+
+ return [1, 2, 2, 1, 2].indexOf(2) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-2.js
new file mode 100644
index 000000000..a3e635f75
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-2.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.14-9-b-iii-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.14/15.4.4.14-9-b-iii-2.js",
+
+ description: "Array.prototype.indexOf - returns without visiting subsequent element once search value is found",
+
+ test: function testcase() {
+ var arr = [1, 2, , 1, 2];
+ var elementThirdAccessed = false;
+ var elementFifthAccessed = false;
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ elementThirdAccessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+ Object.defineProperty(arr, "4", {
+ get: function () {
+ elementFifthAccessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ arr.indexOf(2);
+ return !elementThirdAccessed && !elementFifthAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-1.js
new file mode 100644
index 000000000..55ae3ab20
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-1.js
@@ -0,0 +1,35 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-0-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-1.js",
+
+description: "Array.prototype.lastIndexOf must exist as a function",
+
+test: function testcase() {
+ var f = Array.prototype.lastIndexOf;
+ if (typeof(f) === "function") {
+ return true;
+ }
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-2.js
new file mode 100644
index 000000000..54bdd4911
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-2.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-0-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-0-2.js",
+
+description: "Array.prototype.lastIndexOf has a length property whose value is 1.",
+
+test: function testcase() {
+ if (Array.prototype.lastIndexOf.length === 1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-1.js
new file mode 100644
index 000000000..0ebf2da1e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-1.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-1-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-1.js",
+
+ description: "Array.prototype.lastIndexOf applied to undefined throws a TypeError",
+
+ test: function testcase() {
+
+ try {
+ Array.prototype.lastIndexOf.call(undefined);
+ return false;
+ } catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-10.js
new file mode 100644
index 000000000..409433e00
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-10.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-1-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-10.js",
+
+ description: "Array.prototype.lastIndexOf applied to the Math object",
+
+ test: function testcase() {
+
+ try {
+ Math.length = 2;
+ Math[1] = 100;
+ return 1 === Array.prototype.lastIndexOf.call(Math, 100);
+ } finally {
+ delete Math.length;
+ delete Math[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-11.js
new file mode 100644
index 000000000..58b7b7650
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-11.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-1-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-11.js",
+
+ description: "Array.prototype.lastIndexOf applied to Date object",
+
+ test: function testcase() {
+
+ var obj = new Date();
+ obj.length = 2;
+ obj[1] = true;
+
+ return Array.prototype.lastIndexOf.call(obj, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-12.js
new file mode 100644
index 000000000..85d976a32
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-12.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-1-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-12.js",
+
+ description: "Array.prototype.lastIndexOf applied to RegExp object",
+
+ test: function testcase() {
+
+ var obj = new RegExp("afdasf");
+ obj.length = 100;
+ obj[1] = "afdasf";
+
+ return Array.prototype.lastIndexOf.call(obj, "afdasf") === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-13.js
new file mode 100644
index 000000000..f91c72f09
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-13.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-1-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-13.js",
+
+ description: "Array.prototype.lastIndexOf applied to the JSON object",
+
+ test: function testcase() {
+
+ var targetObj = {};
+ try {
+ JSON[3] = targetObj;
+ JSON.length = 5;
+ return 3 === Array.prototype.lastIndexOf.call(JSON, targetObj);
+ } finally {
+ delete JSON[3];
+ delete JSON.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-14.js
new file mode 100644
index 000000000..477c0b69a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-14.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-1-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-14.js",
+
+ description: "Array.prototype.lastIndexOf applied to Error object",
+
+ test: function testcase() {
+
+ var obj = new SyntaxError();
+ obj.length = 2;
+ obj[1] = Infinity;
+
+ return Array.prototype.lastIndexOf.call(obj, Infinity) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-15.js
new file mode 100644
index 000000000..d68b7e526
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-15.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-1-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-15.js",
+
+ description: "Array.prototype.lastIndexOf applied to the Arguments object",
+
+ test: function testcase() {
+
+ var obj = (function fun() {
+ return arguments;
+ }(1, 2, 3));
+
+ return Array.prototype.lastIndexOf.call(obj, 2) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-17.js
new file mode 100644
index 000000000..bf6eaa40d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-17.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-1-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-17.js",
+
+ description: "Array.prototype.lastIndexOf applied to the global object",
+
+ test: function testcase() {
+ var targetObj = ["global"];
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[1] = targetObj;
+ fnGlobalObject().length = 3;
+ return 1 === Array.prototype.lastIndexOf.call(fnGlobalObject(), targetObj);
+ } finally {
+ delete fnGlobalObject()[1];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-2.js
new file mode 100644
index 000000000..94c81443b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-2.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-1-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-2.js",
+
+ description: "Array.prototype.lastIndexOf applied to null throws a TypeError",
+
+ test: function testcase() {
+
+ try {
+ Array.prototype.lastIndexOf.call(null);
+ return false;
+ } catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-3.js
new file mode 100644
index 000000000..59c76d72e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-1-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-3.js",
+
+ description: "Array.prototype.lastIndexOf applied to boolean primitive",
+
+ test: function testcase() {
+
+ try {
+ Boolean.prototype[1] = true;
+ Boolean.prototype.length = 2;
+
+ return 1 === Array.prototype.lastIndexOf.call(true, true);
+ } finally {
+ delete Boolean.prototype[1];
+ delete Boolean.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-4.js
new file mode 100644
index 000000000..1b0728bf1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-4.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-1-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-4.js",
+
+ description: "Array.prototype.lastIndexOf applied to Boolean object",
+
+ test: function testcase() {
+
+ var obj = new Boolean(false);
+ obj.length = 2;
+ obj[1] = true;
+
+ return Array.prototype.lastIndexOf.call(obj, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-5.js
new file mode 100644
index 000000000..33a0b9b7f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-5.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-1-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-5.js",
+
+ description: "Array.prototype.lastIndexOf applied to number primitive",
+
+ test: function testcase() {
+
+ try {
+ Number.prototype[1] = isNaN;
+ Number.prototype.length = 2;
+ return 1 === Array.prototype.lastIndexOf.call(5, isNaN);
+ } finally {
+ delete Number.prototype[1];
+ delete Number.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-6.js
new file mode 100644
index 000000000..138326fa1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-6.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-1-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-6.js",
+
+ description: "Array.prototype.lastIndexOf applied to Number object",
+
+ test: function testcase() {
+
+ var obj = new Number(-3);
+ obj.length = 2;
+ obj[1] = true;
+
+ return Array.prototype.lastIndexOf.call(obj, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-7.js
new file mode 100644
index 000000000..9b238ca7a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-7.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-1-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-7.js",
+
+ description: "Array.prototype.lastIndexOf applied to string primitive",
+
+ test: function testcase() {
+
+ return Array.prototype.lastIndexOf.call("abc", "c") === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-8.js
new file mode 100644
index 000000000..a6a5b9769
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-8.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-1-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-8.js",
+
+ description: "Array.prototype.lastIndexOf applied to String object",
+
+ test: function testcase() {
+
+ var obj = new String("undefined");
+
+ return Array.prototype.lastIndexOf.call(obj, "f") === 4;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-9.js
new file mode 100644
index 000000000..74bbd4235
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-9.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-1-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-1-9.js",
+
+ description: "Array.prototype.lastIndexOf applied to Function object",
+
+ test: function testcase() {
+
+ var obj = function (a, b) {
+ return a + b;
+ };
+ obj[1] = true;
+
+ return Array.prototype.lastIndexOf.call(obj, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-1.js
new file mode 100644
index 000000000..fea804193
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-1.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-1.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is own data property on an Array-like object",
+
+ test: function testcase() {
+ var obj = { 1: null, 2: undefined, length: 2 };
+
+ return Array.prototype.lastIndexOf.call(obj, null) === 1 &&
+ Array.prototype.lastIndexOf.call(obj, undefined) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-10.js
new file mode 100644
index 000000000..3fc9d662f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-10.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-10.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[1] = 1;
+ child[2] = 2;
+
+ return Array.prototype.lastIndexOf.call(child, 1) === 1 &&
+ Array.prototype.lastIndexOf.call(child, 2) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-11.js
new file mode 100644
index 000000000..3c8534c98
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-11.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-11.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is own accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var obj = { 0: 1 };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.lastIndexOf.call(obj, 1) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-12.js
new file mode 100644
index 000000000..49d09bbab
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-12.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-12.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is own accessor property without a get function that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+ try {
+ Object.defineProperty(Object.prototype, "length", {
+ get: function () {
+ return 20;
+ },
+ configurable: true
+ });
+
+ var obj = { 1: 1 };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.lastIndexOf.call(obj, 1) === -1;
+ } finally {
+ delete Object.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-13.js
new file mode 100644
index 000000000..acddb12be
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-13.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-13.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is inherited accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = true;
+
+ return Array.prototype.lastIndexOf.call(child, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-14.js
new file mode 100644
index 000000000..e6be2acf1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-14.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-14.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is undefined property on an Array-like object",
+
+ test: function testcase() {
+
+ var obj = { 0: null, 1: undefined };
+
+ return Array.prototype.lastIndexOf.call(obj, null) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-15.js
new file mode 100644
index 000000000..086e44c4f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-15.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-2-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-15.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is property of the global object",
+
+ test: function testcase() {
+ var targetObj = {};
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject().length = 2;
+
+ fnGlobalObject()[1] = targetObj;
+ if (Array.prototype.lastIndexOf.call(fnGlobalObject(), targetObj) !== 1) {
+ return false;
+ }
+
+ fnGlobalObject()[1] = {};
+ fnGlobalObject()[2] = targetObj;
+
+ return Array.prototype.lastIndexOf.call(fnGlobalObject(), targetObj) === -1;
+ } finally {
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-17.js
new file mode 100644
index 000000000..6942783f6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-17.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-17.js",
+
+ description: "Array.prototype.lastIndexOf applied to Arguments object which implements its own property get method",
+
+ test: function testcase() {
+
+ var targetObj = function () { };
+ var func = function (a, b) {
+ arguments[2] = function () { };
+ return Array.prototype.lastIndexOf.call(arguments, targetObj) === 1 &&
+ Array.prototype.lastIndexOf.call(arguments, arguments[2]) === -1;
+ };
+
+ return func(0, targetObj);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-18.js
new file mode 100644
index 000000000..0aaee133a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-18.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-18.js",
+
+ description: "Array.prototype.lastIndexOf applied to String object which implements its own property get method",
+
+ test: function testcase() {
+
+ var str = new String("012");
+ try {
+ String.prototype[3] = "3";
+ return Array.prototype.lastIndexOf.call(str, "2") === 2 &&
+ Array.prototype.lastIndexOf.call(str, "3") === -1;
+ } finally {
+ delete String.prototype[3];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-19.js
new file mode 100644
index 000000000..b159d785e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-19.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-19.js",
+
+ description: "Array.prototype.lastIndexOf applied to String object which implements its own property get method",
+
+ test: function testcase() {
+
+ var obj = function (a, b) {
+ return a + b;
+ };
+ obj[1] = "b";
+ obj[2] = "c";
+
+ return Array.prototype.lastIndexOf.call(obj, obj[1]) === 1 &&
+ Array.prototype.lastIndexOf.call(obj, obj[2]) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-2.js
new file mode 100644
index 000000000..c4fabcbbe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-2.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-2.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is own data property on an Array",
+
+ test: function testcase() {
+ var targetObj = {};
+ try {
+ Array.prototype[2] = targetObj;
+
+ return [0, targetObj].lastIndexOf(targetObj) === 1 &&
+ [0, 1].lastIndexOf(targetObj) === -1;
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-3.js
new file mode 100644
index 000000000..2409d5b78
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-2-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-3.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is own data property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var proto = {length: 0};
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ child[1] = child;
+
+ return Array.prototype.lastIndexOf.call(child, child) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-4.js
new file mode 100644
index 000000000..5a68a1d20
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-4.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-4.js",
+
+ description: "Array.prototype.lastIndexOf when 'length' is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var targetObj = {};
+ var arrProtoLen;
+ try {
+ arrProtoLen = Array.prototype.length;
+ Array.prototype.length = 0;
+ return [0, targetObj, 2].lastIndexOf(targetObj) === 1;
+ } finally {
+ Array.prototype.length = arrProtoLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-5.js
new file mode 100644
index 000000000..b6f600fdb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-5.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-2-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-5.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is own data property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ value: 2,
+ configurable: true
+ });
+ child[1] = null;
+
+ return Array.prototype.lastIndexOf.call(child, null) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-6.js
new file mode 100644
index 000000000..de309337f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-6.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-6.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var proto = { length: 2 };
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[1] = "x";
+ child[2] = "y";
+
+ return Array.prototype.lastIndexOf.call(child, "x") === 1 &&
+ Array.prototype.lastIndexOf.call(child, "y") === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-7.js
new file mode 100644
index 000000000..9fdf11271
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-7.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-7.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is own accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var obj = { 1: true, 2: false };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.lastIndexOf.call(obj, true) === 1 &&
+ Array.prototype.lastIndexOf.call(obj, false) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-8.js
new file mode 100644
index 000000000..7016bac46
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-8.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-8.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is own accessor property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var proto = { length: 0 };
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[1] = eval;
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.lastIndexOf.call(child, eval) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-9.js
new file mode 100644
index 000000000..b0c8be5b5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-9.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-2-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-2-9.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is own accessor property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[1] = true;
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.lastIndexOf.call(child, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-1.js
new file mode 100644
index 000000000..64443c584
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-1.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-1.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is undefined",
+
+ test: function testcase() {
+
+ var obj = { 0: 1, 1: 1, length: undefined };
+
+ return Array.prototype.lastIndexOf.call(obj, 1) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-10.js
new file mode 100644
index 000000000..5e23f7c97
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-10.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-10.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is NaN)",
+
+ test: function testcase() {
+
+ var obj = { 0: 0, length: NaN };
+
+ return Array.prototype.lastIndexOf.call(obj, 0) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-11.js
new file mode 100644
index 000000000..7b065b55f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-11.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-11.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a string containing positive number",
+
+ test: function testcase() {
+
+ var obj = {1: true, 2: false, length: "2"};
+
+ return Array.prototype.lastIndexOf.call(obj, true) === 1 &&
+ Array.prototype.lastIndexOf.call(obj, false) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-12.js
new file mode 100644
index 000000000..60b51280d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-12.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-12.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a string containing negative number",
+
+ test: function testcase() {
+
+ var obj = {1: null, 2: undefined, length: "-4294967294"};
+
+ return Array.prototype.lastIndexOf.call(obj, null) === 1 &&
+ Array.prototype.lastIndexOf.call(obj, undefined) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-13.js
new file mode 100644
index 000000000..6f38e63b8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-13.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-3-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-13.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a string containing a decimal number",
+
+ test: function testcase() {
+
+ var obj = { 4: 4, 5: 5, length: "5.512345" };
+
+ return Array.prototype.lastIndexOf.call(obj, 4) === 4 &&
+ Array.prototype.lastIndexOf.call(obj, 5) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-14.js
new file mode 100644
index 000000000..813ac8ca5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-14.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-14.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a string containing +/-Infinity",
+
+ test: function testcase() {
+
+ var objOne = { 0: true, 1: true, length: "Infinity" };
+ var objTwo = { 0: true, 1: true, length: "+Infinity" };
+ var objThree = { 0: true, 1: true, length: "-Infinity" };
+
+ return Array.prototype.lastIndexOf.call(objOne, true) === -1 &&
+ Array.prototype.lastIndexOf.call(objTwo, true) === -1 &&
+ Array.prototype.lastIndexOf.call(objThree, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-15.js
new file mode 100644
index 000000000..0827ee2cd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-15.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-15.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a string containing an exponential number",
+
+ test: function testcase() {
+
+ var obj = {229: 229, 230: 2.3E2, length: "2.3E2"};
+
+ return Array.prototype.lastIndexOf.call(obj, 229) === 229 &&
+ Array.prototype.lastIndexOf.call(obj, 2.3E2) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-16.js
new file mode 100644
index 000000000..e516ba1b0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-16.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-3-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-16.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a string which is able to be converted into hex number",
+
+ test: function testcase() {
+
+ var obj = { 2573: 2573, 2574: 0x000A0E, length: "0x000A0E" };
+
+ return Array.prototype.lastIndexOf.call(obj, 2573) === 2573 &&
+ Array.prototype.lastIndexOf.call(obj, 0x000A0E) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-17.js
new file mode 100644
index 000000000..13f7dcb07
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-17.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-3-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-17.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a string containing a number with leading zeros",
+
+ test: function testcase() {
+
+ var obj = { 1: 1, 2: 2, length: "0002.0" };
+
+ return Array.prototype.lastIndexOf.call(obj, 1) === 1 &&
+ Array.prototype.lastIndexOf.call(obj, 2) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-18.js
new file mode 100644
index 000000000..9014679eb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-18.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-18.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a string that can't convert to a number",
+
+ test: function testcase() {
+ var targetObj = new String("123abc123");
+ var obj = { 0: targetObj, length: "123abc123" };
+
+ return Array.prototype.lastIndexOf.call(obj, targetObj) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-19.js
new file mode 100644
index 000000000..6393a87c3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-19.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-3-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-19.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is an Object which has an own toString method",
+
+ test: function testcase() {
+
+ // objects inherit the default valueOf() method from Object
+ // that simply returns itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+
+ var targetObj = fnGlobalObject();
+ var obj = {
+ 1: targetObj,
+ 2: 2,
+
+ length: {
+ toString: function () {
+ return '2';
+ }
+ }
+ };
+
+ return Array.prototype.lastIndexOf.call(obj, targetObj) === 1 &&
+ Array.prototype.lastIndexOf.call(obj, 2) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-2.js
new file mode 100644
index 000000000..554cf97c0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-2.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-2.js",
+
+ description: "Array.prototype.lastIndexOf return -1 when value of 'length' is a boolean (value is true)",
+
+ test: function testcase() {
+ var obj = { 0: 0, 1: 1, length: true };
+ return Array.prototype.lastIndexOf.call(obj, 0) === 0 &&
+ Array.prototype.lastIndexOf.call(obj, 1) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-20.js
new file mode 100644
index 000000000..49b3c1477
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-20.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-20.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is an Object which has an own valueOf method",
+
+ test: function testcase() {
+
+ //valueOf method will be invoked first, since hint is Number
+ var obj = {
+ 1: true,
+ 2: 2,
+
+ length: {
+ valueOf: function () {
+ return 2;
+ }
+ }
+ };
+
+ return Array.prototype.lastIndexOf.call(obj, true) === 1 &&
+ Array.prototype.lastIndexOf.call(obj, 2) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-21.js
new file mode 100644
index 000000000..dbef906e8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-21.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-3-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-21.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string",
+
+ test: function testcase() {
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var targetObj = this;
+ var obj = {
+ 1: targetObj,
+ length: {
+ toString: function () {
+ toStringAccessed = true;
+ return '3';
+ },
+
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ }
+ }
+ };
+
+ return Array.prototype.lastIndexOf.call(obj, targetObj) === 1 && toStringAccessed && valueOfAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-22.js
new file mode 100644
index 000000000..681c16b2e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-22.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-22.js",
+
+ description: "Array.prototype.lastIndexOf throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values",
+
+ test: function testcase() {
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var obj = {
+ 1: true,
+ length: {
+ toString: function () {
+ toStringAccessed = true;
+ return {};
+ },
+
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ }
+ }
+ };
+
+ try {
+ Array.prototype.lastIndexOf.call(obj, true);
+ return false;
+ } catch (e) {
+ return toStringAccessed && valueOfAccessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-23.js
new file mode 100644
index 000000000..f9dc0f25a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-23.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-23.js",
+
+ description: "Array.prototype.lastIndexOf uses inherited valueOf method when 'length' is an object with an own toString and an inherited valueOf methods",
+
+ test: function testcase() {
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var proto = {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ };
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.toString = function () {
+ toStringAccessed = true;
+ return 2;
+ };
+
+ var obj = {
+ 1: child,
+ length: child
+ };
+
+ return Array.prototype.lastIndexOf.call(obj, child) === 1 && valueOfAccessed && !toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-24.js
new file mode 100644
index 000000000..8244a562e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-24.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-3-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-24.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+
+ var obj = { 122: true, 123: false, length: 123.5 };
+
+ return Array.prototype.lastIndexOf.call(obj, true) === 122 &&
+ Array.prototype.lastIndexOf.call(obj, false) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-25.js
new file mode 100644
index 000000000..e7b98ff57
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-25.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-25.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+
+ var obj = { 1: true, 2: false, length: -4294967294.5 };
+
+ return Array.prototype.lastIndexOf.call(obj, true) === 1 &&
+ Array.prototype.lastIndexOf.call(obj, false) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-28.js
new file mode 100644
index 000000000..00b16eb9b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-28.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-28.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is boundary value (2^32)",
+
+ test: function testcase() {
+
+ var targetObj = {};
+ var obj = {
+ 0: targetObj,
+ 4294967294: targetObj,
+ 4294967295: targetObj,
+ length: 4294967296
+ };
+
+ return Array.prototype.lastIndexOf.call(obj, targetObj) === -1; //verify length is 0 finally
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-29.js
new file mode 100644
index 000000000..df5a0f5a8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-29.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-29.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is boundary value (2^32 + 1)",
+
+ test: function testcase() {
+
+ var targetObj = {};
+ var obj = {
+ 0: targetObj,
+ 1: 4294967297,
+ length: 4294967297
+ };
+
+ return Array.prototype.lastIndexOf.call(obj, targetObj) === 0 &&
+ Array.prototype.lastIndexOf.call(obj, 4294967297) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-3.js
new file mode 100644
index 000000000..00f50b3c5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-3.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-3.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is 0)",
+
+ test: function testcase() {
+
+ var obj = { 0: "undefined", length: 0 };
+
+ return Array.prototype.lastIndexOf.call(obj, "undefined") === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-4.js
new file mode 100644
index 000000000..d8756ee60
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-4.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-4.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is -0)",
+
+ test: function testcase() {
+
+ var obj = { 0: true, length: -0 };
+
+ return Array.prototype.lastIndexOf.call(obj, true) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-5.js
new file mode 100644
index 000000000..3d8f99854
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-5.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-5.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is +0)",
+
+ test: function testcase() {
+
+ var obj = { 0: +0, length: +0 };
+
+ return Array.prototype.lastIndexOf.call(obj, +0) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-6.js
new file mode 100644
index 000000000..59e83fcdc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-6.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-3-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-6.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is a positive number)",
+
+ test: function testcase() {
+
+ var obj = { 99: true, 100: 100, length: 100 };
+
+ return Array.prototype.lastIndexOf.call(obj, true) === 99 &&
+ Array.prototype.lastIndexOf.call(obj, 100) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-7.js
new file mode 100644
index 000000000..39006a8ed
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-7.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-7.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is a negative number)",
+
+ test: function testcase() {
+
+ var obj = { 4: -Infinity, 5: Infinity, length: 5 - Math.pow(2, 32) };
+
+ return Array.prototype.lastIndexOf.call(obj, -Infinity) === 4 &&
+ Array.prototype.lastIndexOf.call(obj, Infinity) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-8.js
new file mode 100644
index 000000000..251fd34dc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-8.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-3-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-8.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is Infinity)",
+
+ test: function testcase() {
+
+ var obj = { 0: 0, length: Infinity };
+
+ return Array.prototype.lastIndexOf.call(obj, 0) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-9.js
new file mode 100644
index 000000000..3af32c956
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-9.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-3-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-3-9.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'length' is a number (value is -Infinity)",
+
+ test: function testcase() {
+
+ var obj = { 0: 0, length: -Infinity };
+
+ return Array.prototype.lastIndexOf.call(obj, 0) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-1.js
new file mode 100644
index 000000000..4129c6e56
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-1.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-4-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-1.js",
+
+description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 (empty array)",
+
+test: function testcase() {
+ var i = [].lastIndexOf(42);
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-10.js
new file mode 100644
index 000000000..6a005c6ef
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-10.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-4-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-10.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is a number of value -6e-1",
+
+ test: function testcase() {
+ var targetObj = [];
+ var obj = { 0: targetObj, 100: targetObj, length: -6e-1 };
+ return Array.prototype.lastIndexOf.call(obj, targetObj) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-11.js
new file mode 100644
index 000000000..6ef6ccc01
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-11.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-4-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-11.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is an empty string",
+
+ test: function testcase() {
+ var targetObj = [];
+ var obj = { 0: targetObj, 100: targetObj, length: "" };
+ return Array.prototype.lastIndexOf.call(obj, targetObj) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-2.js
new file mode 100644
index 000000000..56810e97c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-2.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-4-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-2.js",
+
+description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 ( length overridden to null (type conversion))",
+
+test: function testcase() {
+
+ var i = Array.prototype.lastIndexOf.call({length: null}, 1);
+
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-3.js
new file mode 100644
index 000000000..752c5162c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-3.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-4-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-3.js",
+
+description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 (length overridden to false (type conversion))",
+
+test: function testcase() {
+
+ var i = Array.prototype.lastIndexOf.call({length: false}, 1);
+
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-4.js
new file mode 100644
index 000000000..ba2738d92
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-4.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-4-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-4.js",
+
+description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 (generic 'array' with length 0 )",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 0;
+
+ var i = Array.prototype.lastIndexOf.call({length: 0}, 1);
+
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-5.js
new file mode 100644
index 000000000..de3576f28
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-5.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-4-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-5.js",
+
+description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 ( length overridden to '0' (type conversion))",
+
+test: function testcase() {
+
+ var i = Array.prototype.lastIndexOf.call({length: '0'}, 1);
+
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-6.js
new file mode 100644
index 000000000..77862525d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-6.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-4-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-6.js",
+
+description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)",
+
+test: function testcase() {
+
+ var i = Array.prototype.lastIndexOf.call({length: { valueOf: function () { return 0;}}}, 1);
+
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-7.js
new file mode 100644
index 000000000..54a4fea96
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-7.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-4-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-7.js",
+
+description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 ( length is object overridden with obj w/o valueOf (toString))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { toString: function () { return '0';}};
+ f.length = o;
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ var i = Array.prototype.lastIndexOf.call({length: { toString: function () { return '0';}}}, 1);
+
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-8.js
new file mode 100644
index 000000000..59c2b2390
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-8.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-4-8",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-8.js",
+
+description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 (length is an empty array)",
+
+test: function testcase() {
+
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+ var i = Array.prototype.lastIndexOf.call({length: [ ]}, 1);
+
+ if (i === -1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-9.js
new file mode 100644
index 000000000..2652ae829
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-9.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-4-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-4-9.js",
+
+ description: "Array.prototype.lastIndexOf - 'length' is a number of value 0.1",
+
+ test: function testcase() {
+ var targetObj = [];
+ var obj = { 0: targetObj, 100: targetObj, length: 0.1 };
+ return Array.prototype.lastIndexOf.call(obj, targetObj) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-1.js
new file mode 100644
index 000000000..17a3c062c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-1.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-5-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-1.js",
+
+description: "Array.prototype.lastIndexOf when fromIndex is string",
+
+test: function testcase() {
+ var a = new Array(0,1,1);
+ if (a.lastIndexOf(1,"1") === 1 && // "1" resolves to 1
+ a.lastIndexOf(1,"one") === -1) { // NaN string resolves to 0
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-10.js
new file mode 100644
index 000000000..a996155cd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-10.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-10.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is positive number)",
+
+ test: function testcase() {
+ var targetObj = {};
+ return [0, targetObj, true].lastIndexOf(targetObj, 1.5) === 1 &&
+ [0, true, targetObj].lastIndexOf(targetObj, 1.5) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-11.js
new file mode 100644
index 000000000..90688bca3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-11.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-11.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is negative number)",
+
+ test: function testcase() {
+ var targetObj = {};
+ return [0, targetObj, true].lastIndexOf(targetObj, -2.5) === 1 &&
+ [0, true, targetObj].lastIndexOf(targetObj, -2.5) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-12.js
new file mode 100644
index 000000000..ad2b99ab8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-12.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-12.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is Infinity)",
+
+ test: function testcase() {
+ var arr = [];
+ arr[Math.pow(2, 32) - 2] = null; // length is the max value of Uint type
+ return arr.lastIndexOf(null, Infinity) === (Math.pow(2, 32) - 2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-13.js
new file mode 100644
index 000000000..624ffe32c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-13.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-5-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-13.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is -Infinity)",
+
+ test: function testcase() {
+
+ return [true].lastIndexOf(true, -Infinity) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-14.js
new file mode 100644
index 000000000..fc39daff3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-14.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-5-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-14.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is NaN)",
+
+ test: function testcase() {
+
+ return [0, true].lastIndexOf(true, NaN) === -1 && // from Index will be convert to +0
+ [true, 0].lastIndexOf(true, NaN) === 0 &&
+ [0, true].lastIndexOf(true, -NaN) === -1 &&
+ [true, 0].lastIndexOf(true, -NaN) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-15.js
new file mode 100644
index 000000000..acc405544
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-15.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-5-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-15.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a string containing a negative number",
+
+ test: function testcase() {
+
+ return [0, "-2", 2].lastIndexOf("-2", "-2") === 1 &&
+ [0, 2, "-2"].lastIndexOf("-2", "-2") === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-16.js
new file mode 100644
index 000000000..6d9053b41
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-16.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-16.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a string containing Infinity",
+
+ test: function testcase() {
+ var arr = [];
+ arr[Math.pow(2, 32) - 2] = true; // length is the max value of Uint type
+ return arr.lastIndexOf(true, "Infinity") === (Math.pow(2, 32) - 2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-17.js
new file mode 100644
index 000000000..d2d14329f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-17.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-5-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-17.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a string containing -Infinity",
+
+ test: function testcase() {
+
+ return [true].lastIndexOf(true, "-Infinity") === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-18.js
new file mode 100644
index 000000000..d401cfded
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-18.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-18.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a string containing an exponential number",
+
+ test: function testcase() {
+ var targetObj = {};
+ return [0, NaN, targetObj, 3, false].lastIndexOf(targetObj, "2E0") === 2 &&
+ [0, NaN, 3, targetObj, false].lastIndexOf(targetObj, "2E0") === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-19.js
new file mode 100644
index 000000000..693d50304
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-19.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-19.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a string containing a hex number",
+
+ test: function testcase() {
+ var targetObj = {};
+ return [0, true, targetObj, 3, false].lastIndexOf(targetObj, "0x0002") === 2 &&
+ [0, true, 3, targetObj, false].lastIndexOf(targetObj, "0x0002") === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-2.js
new file mode 100644
index 000000000..34a81513b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-2.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-5-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-2.js",
+
+description: "Array.prototype.lastIndexOf when fromIndex is floating point number",
+
+test: function testcase() {
+ var a = new Array(1,2,1);
+ if (a.lastIndexOf(2,1.49) === 1 && // 1.49 resolves to 1
+ a.lastIndexOf(2,0.51) === -1 && // 0.51 resolves to 0
+ a.lastIndexOf(1,0.51) === 0){ // 0.51 resolves to 0
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-20.js
new file mode 100644
index 000000000..e0173ca48
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-20.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-20.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' which is a string containing a number with leading zeros",
+
+ test: function testcase() {
+ var targetObj = {};
+ return [0, true, targetObj, 3, false].lastIndexOf(targetObj, "0002.10") === 2 &&
+ [0, true, 3, targetObj, false].lastIndexOf(targetObj, "0002.10") === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-21.js
new file mode 100644
index 000000000..98f03dcff
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-21.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-21.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' which is an Object, and has an own toString method",
+
+ test: function testcase() {
+
+ // objects inherit the default valueOf() method from Object
+ // that simply returns itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ var fromIndex = {
+ toString: function () {
+ return '2';
+ }
+ };
+ var targetObj = new RegExp();
+
+ return [0, true, targetObj, 3, false].lastIndexOf(targetObj, fromIndex) === 2 &&
+ [0, true, 3, targetObj, false].lastIndexOf(targetObj, fromIndex) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-22.js
new file mode 100644
index 000000000..a15a357a3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-22.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-5-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-22.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' which is an object, and has an own valueOf method",
+
+ test: function testcase() {
+
+ var fromIndex = {
+ valueOf: function () {
+ return 2;
+ }
+ };
+
+ var targetObj = function () {};
+ return [0, true, targetObj, 3, false].lastIndexOf(targetObj, fromIndex) === 2 &&
+ [0, true, 3, targetObj, false].lastIndexOf(targetObj, fromIndex) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-23.js
new file mode 100644
index 000000000..4fcf52b0b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-23.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-5-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-23.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' is an object that has an own valueOf method that returns an object and toString method that returns a string",
+
+ test: function testcase() {
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var fromIndex = {
+ toString: function () {
+ toStringAccessed = true;
+ return '1';
+ },
+
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ }
+ };
+
+ return [0, true].lastIndexOf(true, fromIndex) === 1 && toStringAccessed && valueOfAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-24.js
new file mode 100644
index 000000000..0e1978d92
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-24.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-24.js",
+
+ description: "Array.prototype.lastIndexOf throws TypeError exception when value of 'fromIndex' is an object that both toString and valueOf methods than don't return primitive value",
+
+ test: function testcase() {
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var fromIndex = {
+ toString: function () {
+ toStringAccessed = true;
+ return {};
+ },
+
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ }
+ };
+
+ try {
+ [0, null].lastIndexOf(null, fromIndex);
+ return false;
+ } catch (e) {
+ return toStringAccessed && valueOfAccessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-25.js
new file mode 100644
index 000000000..4f3e1a9d4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-25.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-5-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-25.js",
+
+ description: "Array.prototype.lastIndexOf use inherited valueOf method when value of 'fromIndex' is an object with an own toString and inherited valueOf methods",
+
+ test: function testcase() {
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var proto = {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 1;
+ }
+ };
+
+ var Con = function () {};
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.toString = function () {
+ toStringAccessed = true;
+ return 1;
+ };
+
+ return [0, true].lastIndexOf(true, child) === 1 && valueOfAccessed && !toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-26.js
new file mode 100644
index 000000000..38d92a8d4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-26.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-26.js",
+
+ description: "Array.prototype.lastIndexOf - side effects produced by step 2 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var stepTwoOccurs = false;
+ var stepFiveOccurs = false;
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ stepTwoOccurs = true;
+ if (stepFiveOccurs) {
+ throw new Error("Step 5 occurred out of order");
+ }
+ return 20;
+ },
+ configurable: true
+ });
+
+ var fromIndex = {
+ valueOf: function () {
+ stepFiveOccurs = true;
+ return 0;
+ }
+ };
+
+ try {
+ Array.prototype.lastIndexOf.call(obj, undefined, fromIndex);
+ return stepTwoOccurs && stepFiveOccurs;
+ } catch (ex) {
+ return false;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-27.js
new file mode 100644
index 000000000..e904792d5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-27.js
@@ -0,0 +1,71 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-27.js",
+
+ description: "Array.prototype.lastIndexOf - side effects produced by step 3 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var stepThreeOccurs = false;
+ var stepFiveOccurs = false;
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ valueOf: function () {
+ stepThreeOccurs = true;
+ if (stepFiveOccurs) {
+ throw new Error("Step 5 occurred out of order");
+ }
+ return 20;
+ }
+ };
+ },
+ configurable: true
+ });
+
+ var fromIndex = {
+ valueOf: function () {
+ stepFiveOccurs = true;
+ return 0;
+ }
+ };
+
+ try {
+ Array.prototype.lastIndexOf.call(obj, undefined, fromIndex);
+ return stepThreeOccurs && stepFiveOccurs;
+ } catch (ex) {
+ return false;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-28.js
new file mode 100644
index 000000000..afc3bb512
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-28.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-5-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-28.js",
+
+ description: "Array.prototype.lastIndexOf - side effects produced by step 1 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var stepFiveOccurs = false;
+ var fromIndex = {
+ valueOf: function () {
+ stepFiveOccurs = true;
+ return 0;
+ }
+ };
+
+ try {
+ Array.prototype.lastIndexOf.call(undefined, undefined, fromIndex);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError) && !stepFiveOccurs;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-29.js
new file mode 100644
index 000000000..3dc58007f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-29.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-29.js",
+
+ description: "Array.prototype.lastIndexOf - side effects produced by step 2 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var stepFiveOccurs = false;
+
+ var obj = {};
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new RangeError();
+ },
+ configurable: true
+ });
+
+ var fromIndex = {
+ valueOf: function () {
+ stepFiveOccurs = true;
+ return 0;
+ }
+ };
+
+ try {
+ Array.prototype.lastIndexOf.call(obj, undefined, fromIndex);
+ return false;
+ } catch (e) {
+ return (e instanceof RangeError) && !stepFiveOccurs;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-3.js
new file mode 100644
index 000000000..d58e204be
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-3.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-5-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-3.js",
+
+description: "Array.prototype.lastIndexOf when fromIndex is boolean",
+
+test: function testcase() {
+ var a = new Array(1,2,1);
+ if (a.lastIndexOf(2,true) === 1 && // true resolves to 1
+ a.lastIndexOf(2,false) === -1 ) { // false resolves to 0
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-30.js
new file mode 100644
index 000000000..a9d4d64f4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-30.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-30.js",
+
+ description: "Array.prototype.lastIndexOf - side effects produced by step 3 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var stepFiveOccurs = false;
+
+ var obj = {};
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ valueOf: function () {
+ throw new TypeError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ var fromIndex = {
+ valueOf: function () {
+ stepFiveOccurs = true;
+ return 0;
+ }
+ };
+
+ try {
+ Array.prototype.lastIndexOf.call(obj, undefined, fromIndex);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError) && !stepFiveOccurs;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-31.js
new file mode 100644
index 000000000..0e5a54433
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-31.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-31.js",
+
+ description: "Array.prototype.lastIndexOf - 'fromIndex' is a positive non-integer, verify truncation occurs in the proper direction",
+
+ test: function testcase() {
+ var targetObj = {};
+ return [0, targetObj, true].lastIndexOf(targetObj, 1.5) === 1 &&
+ [0, true, targetObj].lastIndexOf(targetObj, 1.5) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-32.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-32.js
new file mode 100644
index 000000000..6215888f4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-32.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-32",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-32.js",
+
+ description: "Array.prototype.lastIndexOf - 'fromIndex' is a negative non-integer, verify truncation occurs in the proper direction",
+
+ test: function testcase() {
+ var targetObj = {};
+ return [0, targetObj, true].lastIndexOf(targetObj, -2.5) === 1 &&
+ [0, true, targetObj].lastIndexOf(targetObj, -2.5) === -1;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-33.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-33.js
new file mode 100644
index 000000000..37a0bdc87
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-33.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-33",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-33.js",
+
+ description: "Array.prototype.lastIndexOf - match on the first element, a middle element and the last element when 'fromIndex' is passed",
+
+ test: function testcase() {
+
+ return [0, 1, 2, 3, 4].lastIndexOf(0, 0) === 0 &&
+ [0, 1, 2, 3, 4].lastIndexOf(0, 2) === 0 &&
+ [0, 1, 2, 3, 4].lastIndexOf(2, 2) === 2 &&
+ [0, 1, 2, 3, 4].lastIndexOf(2, 4) === 2 &&
+ [0, 1, 2, 3, 4].lastIndexOf(4, 4) === 4;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-4.js
new file mode 100644
index 000000000..2afb1d6ab
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-4.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-5-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-4.js",
+
+description: "Array.prototype.lastIndexOf when fromIndex is undefined",
+
+test: function testcase() {
+ var a = new Array(1,2,1);
+ if (a.lastIndexOf(2,undefined) === -1 &&
+ a.lastIndexOf(1,undefined) === 0 &&
+ a.lastIndexOf(1) === 2) { // undefined resolves to 0, no second argument resolves to len
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-5.js
new file mode 100644
index 000000000..0755c4859
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-5.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-5-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-5.js",
+
+description: "Array.prototype.lastIndexOf when fromIndex is null",
+
+test: function testcase() {
+ var a = new Array(1,2,1);
+ if (a.lastIndexOf(2,null) === -1 && a.lastIndexOf(1,null) === 0) { // null resolves to 0
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-6.js
new file mode 100644
index 000000000..58b3d71a2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-6.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-6.js",
+
+ description: "Array.prototype.lastIndexOf when 'fromIndex' isn't passed",
+
+ test: function testcase() {
+ var arr = [0, 1, 2, 3, 4];
+ //'fromIndex' will be set as 4 if not passed by default
+ return arr.lastIndexOf(0) === arr.lastIndexOf(0, 4) &&
+ arr.lastIndexOf(2) === arr.lastIndexOf(2, 4) &&
+ arr.lastIndexOf(4) === arr.lastIndexOf(4, 4);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-7.js
new file mode 100644
index 000000000..4ea6f7556
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-7.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-7.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is 0)",
+
+ test: function testcase() {
+
+ return [0, 100].lastIndexOf(100, 0) === -1 && // verify fromIndex is not more than 0
+ [200, 0].lastIndexOf(200, 0) === 0; // verify fromIndex is not less than 0
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-8.js
new file mode 100644
index 000000000..c2948de9d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-8.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-5-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-8.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is +0)",
+
+ test: function testcase() {
+
+ return [0, true].lastIndexOf(true, +0) === -1 &&
+ [true, 0].lastIndexOf(true, +0) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-9.js
new file mode 100644
index 000000000..1281b1de9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-9.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-5-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-5-9.js",
+
+ description: "Array.prototype.lastIndexOf - value of 'fromIndex' is a number (value is -0)",
+
+ test: function testcase() {
+
+ return [0, true].lastIndexOf(true, -0) === -1 &&
+ [true, 0].lastIndexOf(true, -0) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-1.js
new file mode 100644
index 000000000..69f4a0d91
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-1.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-6-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-1.js",
+
+description: "Array.prototype.lastIndexOf when fromIndex greater than Array.length",
+
+test: function testcase() {
+ var a = new Array(1,2,3);
+ if (a.lastIndexOf(3,5.4) === 2 &&
+ a.lastIndexOf(3,3.1) === 2 ) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-2.js
new file mode 100644
index 000000000..3b1d33cf5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-2.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-6-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-2.js",
+
+ description: "Array.prototype.lastIndexOf returns correct index when 'fromIndex' is length of array - 1",
+
+ test: function testcase() {
+
+ return [1, 2, 3].lastIndexOf(3, 2) === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-3.js
new file mode 100644
index 000000000..4613e0c9d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-3.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-6-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-3.js",
+
+ description: "Array.prototype.lastIndexOf returns -1 when 'fromIndex' is length of array - 1",
+
+ test: function testcase() {
+
+ return [1, 2, 3].lastIndexOf(3, 1) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-4.js
new file mode 100644
index 000000000..62d8b6ff5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-4.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-6-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-4.js",
+
+ description: "Array.prototype.lastIndexOf returns -1 when 'fromIndex' and 'length' are both 0",
+
+ test: function testcase() {
+
+ return [].lastIndexOf(1, 0) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-5.js
new file mode 100644
index 000000000..f2abf0508
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-5.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-6-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-5.js",
+
+ description: "Array.prototype.lastIndexOf returns -1 when 'fromIndex' is 1",
+
+ test: function testcase() {
+
+ return [1, 2, 3].lastIndexOf(3, 1) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-6.js
new file mode 100644
index 000000000..3aa587195
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-6.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-6-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-6-6.js",
+
+ description: "Array.prototype.lastIndexOf returns correct index when 'fromIndex' is 1",
+
+ test: function testcase() {
+
+ return [1, 2, 3].lastIndexOf(2, 1) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-1.js
new file mode 100644
index 000000000..874814d8b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-1.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-7-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-1.js",
+
+description: "Array.prototype.lastIndexOf with negative fromIndex ",
+
+test: function testcase() {
+ var a = new Array(1,2,3);
+
+ if (a.lastIndexOf(2,-2) === 1 &&
+ a.lastIndexOf(2,-3) === -1 &&
+ a.lastIndexOf(1,-5.3) === -1 ) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-2.js
new file mode 100644
index 000000000..91163c64e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-2.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-7-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-2.js",
+
+ description: "Array.prototype.lastIndexOf returns correct index when 'fromIndex' is -1",
+
+ test: function testcase() {
+
+ return [1, 2, 3, 4].lastIndexOf(4, -1) === 3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-3.js
new file mode 100644
index 000000000..817f69a18
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-3.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-7-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-3.js",
+
+ description: "Array.prototype.lastIndexOf returns -1 when abs('fromIndex') is length of array - 1",
+
+ test: function testcase() {
+
+ return [1, 2, 3, 4].lastIndexOf(3, -3) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-4.js
new file mode 100644
index 000000000..d080133fc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-4.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-7-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-7-4.js",
+
+ description: "Array.prototype.lastIndexOf returns -1 when abs('fromIndex') is length of array",
+
+ test: function testcase() {
+
+ return [1, 2, 3, 4].lastIndexOf(2, -4) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+})
+
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-1.js
new file mode 100644
index 000000000..afa6f5541
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-1.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-8-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-1.js",
+
+description: "Array.prototype.lastIndexOf must return correct index(boolean)",
+
+test: function testcase() {
+ var obj = {toString:function (){return true}};
+ var _false = false;
+ var a = new Array(false,true,false,obj,_false,true,"true", undefined,0,null,1,"str",0,1);
+ if (a.lastIndexOf(true) === 5 && //a[5]=true
+ a.lastIndexOf(false) === 4) //a[4] =_false
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-10.js
new file mode 100644
index 000000000..610eab4b3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-10.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+/** note that prior to the finally ES5 draft SameValue was used for comparisions
+and hence NaNs could be found using lastIndexOf **/
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-8-10",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-10.js",
+
+description: "Array.prototype.lastIndexOf must return correct index (NaN)",
+
+test: function testcase() {
+ var _NaN = NaN;
+ var a = new Array("NaN",_NaN,NaN, undefined,0,false,null,{toString:function (){return NaN}},"false");
+ if (a.lastIndexOf(NaN) === -1) // NaN matches nothing, not even itself
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-11.js
new file mode 100644
index 000000000..42ce50e99
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-11.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-11.js",
+
+ description: "Array.prototype.lastIndexOf - the length of iteration isn't changed by adding elements to the array during iteration",
+
+ test: function testcase() {
+
+ var arr = [20];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr[1] = 1;
+ return 0;
+ },
+ configurable: true
+ });
+
+ return arr.lastIndexOf(1) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-2.js
new file mode 100644
index 000000000..11965fb84
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-2.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-8-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-2.js",
+
+description: "Array.prototype.lastIndexOf must return correct index(Number)",
+
+test: function testcase() {
+ var obj = {toString:function (){return 0}};
+ var one = 1;
+ var _float = -(4/3);
+ var a = new Array(+0,true,0,-0, false,undefined,null,"0",obj, _float,-(4/3),-1.3333333333333,"str",one, 1, false);
+ if (a.lastIndexOf(-(4/3)) === 10 && // a[10]=-(4/3)
+ a.lastIndexOf(0) === 3 && // a[3] = -0, but using === -0 and 0 are equal
+ a.lastIndexOf(-0) ===3 && // a[3] = -0
+ a.lastIndexOf(1) === 14 ) // a[14] = 1
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-3.js
new file mode 100644
index 000000000..b061f4d57
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-3.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-8-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-3.js",
+
+description: "Array.prototype.lastIndexOf must return correct index(string)",
+
+test: function testcase() {
+ var obj = {toString:function (){return "false"}};
+ var szFalse = "false";
+ var a = new Array(szFalse, "false","false1",undefined,0,false,null,1,obj,0);
+ if (a.lastIndexOf("false") === 1)
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-4.js
new file mode 100644
index 000000000..922644a6f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-4.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-8-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-4.js",
+
+description: "Array.prototype.lastIndexOf must return correct index(undefined)",
+
+test: function testcase() {
+ var obj = {toString:function (){return undefined;}};
+ var _undefined1 = undefined;
+ var _undefined2;
+ var a = new Array(_undefined1,_undefined2,undefined,true,0,false,null,1,"undefined",obj,1);
+ if (a.lastIndexOf(undefined) === 2)
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-5.js
new file mode 100644
index 000000000..540285876
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-5.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-8-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-5.js",
+
+description: "Array.prototype.lastIndexOf must return correct index(Object)",
+
+test: function testcase() {
+ var obj1 = {toString:function (){return "false"}};
+ var obj2 = {toString:function (){return "false"}};
+ var obj3 = obj1;
+ var a = new Array(obj2,obj1,obj3,false,undefined,0,false,null,{toString:function (){return "false"}},"false");
+ if (a.lastIndexOf(obj3) === 2)
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-6.js
new file mode 100644
index 000000000..af2b26ba2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-6.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-8-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-6.js",
+
+description: "Array.prototype.lastIndexOf must return correct index(null)",
+
+test: function testcase() {
+ var obj = {toString:function (){return null}};
+ var _null = null;
+ var a = new Array(true,undefined,0,false,null,1,"str",0,1,null,true,false,undefined,_null,"null",undefined,"str",obj);
+ if (a.lastIndexOf(null) === 13 )
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-7.js
new file mode 100644
index 000000000..40b38e595
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-7.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-8-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-7.js",
+
+description: "Array.prototype.lastIndexOf must return correct index (self reference)",
+
+test: function testcase() {
+ var a = new Array(0,1,2,3);
+ a[2] = a;
+ if (a.lastIndexOf(a) === 2 &&
+ a.lastIndexOf(3) === 3 )
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-8.js
new file mode 100644
index 000000000..71ca39340
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-8.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-8-8",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-8.js",
+
+description: "Array.prototype.lastIndexOf must return correct index (Array)",
+
+test: function testcase() {
+ var b = new Array("0,1");
+ var a = new Array(0,b,"0,1",3);
+ if (a.lastIndexOf(b.toString()) === 2 &&
+ a.lastIndexOf("0,1") === 2 )
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-9.js
new file mode 100644
index 000000000..71cbe96ae
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-9.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-8-9",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-9.js",
+
+description: "Array.prototype.lastIndexOf must return correct index (Sparse Array)",
+
+test: function testcase() {
+ var a = new Array(0,1);
+ a[4294967294] = 2; // 2^32-2 - is max array element index
+ a[4294967295] = 3; // 2^32-1 added as non-array element property
+ a[4294967296] = 4; // 2^32 added as non-array element property
+ a[4294967297] = 5; // 2^32+1 added as non-array element property
+ // stop searching near the end in case implementation actually tries to test all missing elements!!
+ a[4294967200] = 3;
+ a[4294967201] = 4;
+ a[4294967202] = 5;
+
+
+ return (a.lastIndexOf(2) === 4294967294 &&
+ a.lastIndexOf(3) === 4294967200 &&
+ a.lastIndexOf(4) === 4294967201 &&
+ a.lastIndexOf(5) === 4294967202) ;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-1.js
new file mode 100644
index 000000000..01afb958c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-1.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-1.js",
+
+ description: "Array.prototype.lastIndexOf - added properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ var arr = { };
+
+ Object.defineProperty(arr, "length", {
+ get: function () {
+ arr[2] = "length";
+ return 3;
+ },
+ configurable: true
+ });
+
+ return 2 === Array.prototype.lastIndexOf.call(arr, "length");
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-10.js
new file mode 100644
index 000000000..da3bca0aa
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-10.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-10.js",
+
+ description: "Array.prototype.lastIndexOf - properties can be added to prototype after current position are visited on an Array",
+
+ test: function testcase() {
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ return arr.lastIndexOf(6.99) === 1;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-11.js
new file mode 100644
index 000000000..5cff73f6b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-11.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-11.js",
+
+ description: "Array.prototype.lastIndexOf - deleting own property causes index property not to be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var arr = { length: 200 };
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "100", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ return -1 === Array.prototype.lastIndexOf.call(arr, 6.99);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-12.js
new file mode 100644
index 000000000..dc740c886
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-12.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-12.js",
+
+ description: "Array.prototype.lastIndexOf - deleting own property causes index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ var arr = [1, 2, 3, 4];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "6.99";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ return -1 === arr.lastIndexOf("6.99");
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-13.js
new file mode 100644
index 000000000..59838b1d6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-13.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-13.js",
+
+ description: "Array.prototype.lastIndexOf - deleting property of prototype causes prototype index property not to be visited on an Array-like Object",
+
+ test: function testcase() {
+
+ var arr = { 2: 2, length: 20 };
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ delete Object.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ return -1 === Array.prototype.lastIndexOf.call(arr, 1);
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-14.js
new file mode 100644
index 000000000..acc47567b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-14.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-14.js",
+
+ description: "Array.prototype.lastIndexOf - deleting property of prototype causes prototype index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "20", {
+ get: function () {
+ delete Array.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ return -1 === arr.lastIndexOf(1);
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-15.js
new file mode 100644
index 000000000..8e0324898
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-15.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-15.js",
+
+ description: "Array.prototype.lastIndexOf - deleting own property with prototype property causes prototype index property to be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var arr = { 0: 0, 1: 111, 2: 2, length: 10 };
+
+ Object.defineProperty(arr, "6", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ return 1 === Array.prototype.lastIndexOf.call(arr, 1);
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-16.js
new file mode 100644
index 000000000..ccdd04599
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-16.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-16.js",
+
+ description: "Array.prototype.lastIndexOf - deleting own property with prototype property causes prototype index property to be visited on an Array",
+
+ test: function testcase() {
+
+ var arr = [0, 111, 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ return 1 === arr.lastIndexOf(1);
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-17.js
new file mode 100644
index 000000000..81ba6ed98
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-17.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-17.js",
+
+ description: "Array.prototype.lastIndexOf - decreasing length of array causes index property not to be visited",
+
+ test: function testcase() {
+
+ var arr = [0, 1, 2, "last", 4];
+
+ Object.defineProperty(arr, "4", {
+ get: function () {
+ arr.length = 3;
+ return 0;
+ },
+ configurable: true
+ });
+
+ return -1 === arr.lastIndexOf("last");
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-18.js
new file mode 100644
index 000000000..595a3928c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-18.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-18.js",
+
+ description: "Array.prototype.lastIndexOf - decreasing length of array with prototype property causes prototype index property to be visited",
+
+ test: function testcase() {
+
+ var arr = [0, 1, 2, 3, 4];
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "prototype";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ return 2 === arr.lastIndexOf("prototype");
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-19.js
new file mode 100644
index 000000000..607bbae1c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-19.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-19.js",
+
+ description: "Array.prototype.lastIndexOf - decreasing length of array does not delete non-configurable properties",
+
+ test: function testcase() {
+
+ var arr = [0, 1, 2, 3];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "unconfigurable";
+ },
+ configurable: false
+ });
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ return 2 === arr.lastIndexOf("unconfigurable");
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-2.js
new file mode 100644
index 000000000..347c62089
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-2.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-2.js",
+
+ description: "Array.prototype.lastIndexOf - added properties in step 5 are visible here on an Array-like object",
+
+ test: function testcase() {
+
+ var arr = { length: 30 };
+ var targetObj = function () { };
+
+ var fromIndex = {
+ valueOf: function () {
+ arr[4] = targetObj;
+ return 10;
+ }
+ };
+
+ return 4 === Array.prototype.lastIndexOf.call(arr, targetObj, fromIndex);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-3.js
new file mode 100644
index 000000000..155888471
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-3.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-3.js",
+
+ description: "Array.prototype.lastIndexOf - added properties in step 5 are visible here on an Array",
+
+ test: function testcase() {
+
+ var arr = [];
+ arr.length = 30;
+ var targetObj = function () { };
+
+ var fromIndex = {
+ valueOf: function () {
+ arr[4] = targetObj;
+ return 11;
+ }
+ };
+
+ return 4 === arr.lastIndexOf(targetObj, fromIndex);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-4.js
new file mode 100644
index 000000000..e14a5347d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-4.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-4.js",
+
+ description: "Array.prototype.lastIndexOf - deleted properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ var arr = { 2: 6.99 };
+
+ Object.defineProperty(arr, "length", {
+ get: function () {
+ delete arr[2];
+ return 3;
+ },
+ configurable: true
+ });
+
+ return -1 === Array.prototype.lastIndexOf.call(arr, 6.99);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-5.js
new file mode 100644
index 000000000..03da35dda
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-5.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-5.js",
+
+ description: "Array.prototype.lastIndexOf - deleted properties of step 5 are visible here on an Array-like object",
+
+ test: function testcase() {
+
+ var arr = { 10: false, length: 30 };
+
+ var fromIndex = {
+ valueOf: function () {
+ delete arr[10];
+ return 15;
+ }
+ };
+
+ return -1 === Array.prototype.lastIndexOf.call(arr, false, fromIndex);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-6.js
new file mode 100644
index 000000000..820f7244d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-6.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-6.js",
+
+ description: "Array.prototype.lastIndexOf - deleted properties of step 5 are visible here on an Array",
+
+ test: function testcase() {
+
+ var arr = [];
+ arr[10] = "10";
+ arr.length = 20;
+
+ var fromIndex = {
+ valueOf: function () {
+ delete arr[10];
+ return 11;
+ }
+ };
+
+ return -1 === arr.lastIndexOf("10", fromIndex);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-7.js
new file mode 100644
index 000000000..c52232ae2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-7.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-7.js",
+
+ description: "Array.prototype.lastIndexOf - properties added into own object after current position are visited on an Array-like object",
+
+ test: function testcase() {
+
+ var arr = { length: 8 };
+
+ Object.defineProperty(arr, "4", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.lastIndexOf.call(arr, 1) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-8.js
new file mode 100644
index 000000000..d6b682ae1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-8.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-8.js",
+
+ description: "Array.prototype.lastIndexOf - properties added into own object after current position are visited on an Array",
+
+ test: function testcase() {
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ return arr.lastIndexOf(1) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-9.js
new file mode 100644
index 000000000..70e32650e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-9.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-a-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-a-9.js",
+
+ description: "Array.prototype.lastIndexOf - properties can be added to prototype after current position are visited on an Array-like object",
+
+ test: function testcase() {
+
+ var arr = { length: 9 };
+
+ Object.defineProperty(arr, "4", {
+ get: function () {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return Infinity;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ return Array.prototype.lastIndexOf.call(arr, Infinity) === 1;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-1.js
new file mode 100644
index 000000000..6ac675af6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-1.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-1.js",
+
+ description: "Array.prototype.lastIndexOf - undefined property wouldn't be called",
+
+ test: function testcase() {
+
+ return [0, , 2].lastIndexOf(undefined) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-1.js
new file mode 100644
index 000000000..8ae845480
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-1.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-i-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-1.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own data property on an Array-like object",
+
+ test: function testcase() {
+
+ var obj = { 0: 0, 1: 1, 2: 2, length: 3 };
+
+ return Array.prototype.lastIndexOf.call(obj, 0) === 0 &&
+ Array.prototype.lastIndexOf.call(obj, 1) === 1 &&
+ Array.prototype.lastIndexOf.call(obj, 2) === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-10.js
new file mode 100644
index 000000000..d0367c92a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-10.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-10.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var obj = { length: 3 };
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ return 0 === Array.prototype.lastIndexOf.call(obj, 0) &&
+ 1 === Array.prototype.lastIndexOf.call(obj, 1) &&
+ 2 === Array.prototype.lastIndexOf.call(obj, 2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-11.js
new file mode 100644
index 000000000..436fe8e8c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-11.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-i-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-11.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var arr = [];
+ try {
+ Array.prototype[0] = false;
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return true;
+ },
+ configurable: true
+ });
+
+ return 0 === arr.lastIndexOf(true);
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-12.js
new file mode 100644
index 000000000..d5ae8a717
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-12.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-12.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+ var obj = { length: 1 };
+
+ try {
+ Object.prototype[0] = false;
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return true;
+ },
+ configurable: true
+ });
+
+ return 0 === Array.prototype.lastIndexOf.call(obj, true);
+ } finally {
+ delete Object.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-13.js
new file mode 100644
index 000000000..bf97494ab
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-13.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-i-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-13.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var arr = [];
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return false;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return true;
+ },
+ configurable: true
+ });
+
+ return 0 === arr.lastIndexOf(true);
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-14.js
new file mode 100644
index 000000000..61c4eb48e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-14.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-14.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var obj = { length: 1 };
+
+ try {
+ Object.defineProperty(Object.prototype, "0", {
+ get: function () {
+ return false;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return true;
+ },
+ configurable: true
+ });
+
+ return 0 === Array.prototype.lastIndexOf.call(obj, true);
+ } finally {
+ delete Object.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-15.js
new file mode 100644
index 000000000..15ce75b5a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-15.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-i-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-15.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is inherited accessor property on an Array",
+
+ test: function testcase() {
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 10;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 20;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return 30;
+ },
+ configurable: true
+ });
+
+ return 0 === [, , , ].lastIndexOf(10) &&
+ 1 === [, , , ].lastIndexOf(20) &&
+ 2 === [, , , ].lastIndexOf(30);
+ } finally {
+ delete Array.prototype[0];
+ delete Array.prototype[1];
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-16.js
new file mode 100644
index 000000000..492d25e3c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-16.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-16.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ try {
+ Object.defineProperty(Object.prototype, "0", {
+ get: function () {
+ return 10;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 20;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(Object.prototype, "2", {
+ get: function () {
+ return 30;
+ },
+ configurable: true
+ });
+
+ return 0 === Array.prototype.lastIndexOf.call({ length: 3 }, 10) &&
+ 1 === Array.prototype.lastIndexOf.call({ length: 3 }, 20) &&
+ 2 === Array.prototype.lastIndexOf.call({ length: 3 }, 30);
+ } finally {
+ delete Object.prototype[0];
+ delete Object.prototype[1];
+ delete Object.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-17.js
new file mode 100644
index 000000000..81297a5ab
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-17.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-i-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-17.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ var arr = [];
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ return arr.lastIndexOf(undefined) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-18.js
new file mode 100644
index 000000000..36434e72e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-18.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-18.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var obj = { length: 1 };
+ Object.defineProperty(obj, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ return 0 === Array.prototype.lastIndexOf.call(obj, undefined);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-19.js
new file mode 100644
index 000000000..53d24f0cc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-19.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-19.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var obj = { length: 1 };
+ try {
+ Object.defineProperty(Object.prototype, "0", {
+ get: function () {
+ return 20;
+ },
+ configurable: true
+ });
+ Object.defineProperty(obj, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ return obj.hasOwnProperty(0) && 0 === Array.prototype.lastIndexOf.call(obj, undefined);
+ } finally {
+ delete Object.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-2.js
new file mode 100644
index 000000000..e47fb75d0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-2.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-2.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own data property on an Array",
+
+ test: function testcase() {
+ return [true, true, true].lastIndexOf(true) === 2 &&
+ [true, true, false].lastIndexOf(true) === 1 &&
+ [true, false, false].lastIndexOf(true) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-20.js
new file mode 100644
index 000000000..024558b9f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-20.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-20.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is an own accessor property without a get function that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var arr = [, 1];
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 100;
+ },
+ configurable: true
+ });
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ return arr.hasOwnProperty(0) && arr.lastIndexOf(undefined) === 0;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-21.js
new file mode 100644
index 000000000..695b4aa1b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-21.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-i-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-21.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is inherited accessor property without a get function on an Array",
+
+ test: function testcase() {
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ set: function () { },
+ configurable: true
+ });
+ return [, ].lastIndexOf(undefined) === 0;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-22.js
new file mode 100644
index 000000000..82e16b559
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-22.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-22.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is inherited accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ try {
+ Object.defineProperty(Object.prototype, "0", {
+ set: function () { },
+ configurable: true
+ });
+ return 0 === Array.prototype.lastIndexOf.call({ length: 1 }, undefined);
+ } finally {
+ delete Object.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-23.js
new file mode 100644
index 000000000..8687f20c6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-23.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-i-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-23.js",
+
+ description: "Array.prototype.lastIndexOf - This object is the global object",
+
+ test: function testcase() {
+
+ var targetObj = {};
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = targetObj;
+ fnGlobalObject()[100] = "100";
+ fnGlobalObject()[200] = "200";
+ fnGlobalObject().length = 200;
+ return 0 === Array.prototype.lastIndexOf.call(fnGlobalObject(), targetObj) &&
+ 100 === Array.prototype.lastIndexOf.call(fnGlobalObject(), "100") &&
+ -1 === Array.prototype.lastIndexOf.call(fnGlobalObject(), "200");
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[100];
+ delete fnGlobalObject()[200];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-25.js
new file mode 100644
index 000000000..e86e0b43b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-25.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-25.js",
+
+ description: "Array.prototype.lastIndexOf applied to Arguments object which implements its own property get method (number of arguments is less than number of parameters)",
+
+ test: function testcase() {
+
+ var func = function (a, b) {
+ return 0 === Array.prototype.lastIndexOf.call(arguments, arguments[0]) &&
+ -1 === Array.prototype.lastIndexOf.call(arguments, arguments[1]);
+ };
+
+ return func(true);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-26.js
new file mode 100644
index 000000000..e17439e00
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-26.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-26.js",
+
+ description: "Array.prototype.lastIndexOf applied to Arguments object which implements its own property get method (number of arguments equals to number of parameters)",
+
+ test: function testcase() {
+
+ var func = function (a, b) {
+ return 0 === Array.prototype.lastIndexOf.call(arguments, arguments[0]) &&
+ 1 === Array.prototype.lastIndexOf.call(arguments, arguments[1]) &&
+ -1 === Array.prototype.lastIndexOf.call(arguments, arguments[2]);
+ };
+
+ return func(0, true);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-27.js
new file mode 100644
index 000000000..10dade626
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-27.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-27.js",
+
+ description: "Array.prototype.lastIndexOf applied to Arguments object which implements its own property get method (number of arguments is greater than number of parameters)",
+
+ test: function testcase() {
+
+ var func = function (a, b) {
+ return 2 === Array.prototype.lastIndexOf.call(arguments, arguments[0]) &&
+ 3 === Array.prototype.lastIndexOf.call(arguments, arguments[3]) &&
+ -1 === Array.prototype.lastIndexOf.call(arguments, arguments[4]);
+ };
+
+ return func(0, arguments, 0, Object.prototype);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-28.js
new file mode 100644
index 000000000..97392c727
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-28.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-i-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-28.js",
+
+ description: "Array.prototype.lastIndexOf - side-effects are visible in subsequent iterations on an Array",
+
+ test: function testcase() {
+
+ var preIterVisible = false;
+ var arr = [];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ preIterVisible = true;
+ return false;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return true;
+ } else {
+ return false;
+ }
+ },
+ configurable: true
+ });
+
+ return arr.lastIndexOf(true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-29.js
new file mode 100644
index 000000000..477f142c9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-29.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-29.js",
+
+ description: "Array.prototype.lastIndexOf - side-effects are visible in subsequent iterations on an Array-like object",
+
+ test: function testcase() {
+
+ var preIterVisible = false;
+ var obj = { length: 3 };
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ preIterVisible = true;
+ return false;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return true;
+ } else {
+ return false;
+ }
+ },
+ configurable: true
+ });
+
+ return Array.prototype.lastIndexOf.call(obj, true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-3.js
new file mode 100644
index 000000000..629e62486
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-3.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-i-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-3.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+ try {
+ Array.prototype[0] = Object;
+ return [Object.prototype].lastIndexOf(Object.prototype) === 0;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-30.js
new file mode 100644
index 000000000..fe1823599
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-30.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-i-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-30.js",
+
+ description: "Array.prototype.lastIndexOf terminates iteration on unhandled exception on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var arr = [];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ throw new TypeError();
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ accessed = true;
+ return true;
+ },
+ configurable: true
+ });
+
+ try {
+ arr.lastIndexOf(true);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError) && !accessed;
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-31.js
new file mode 100644
index 000000000..7f3225882
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-31.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-31.js",
+
+ description: "Array.prototype.lastIndexOf terminates iteration on unhandled exception on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var obj = { length: 3 };
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ throw new TypeError();
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ accessed = true;
+ return true;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.lastIndexOf.call(obj, true);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError) && !accessed;
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-4.js
new file mode 100644
index 000000000..1275b149b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-4.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-4.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own data property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ try {
+ Object.prototype[0] = false;
+ return 0 === Array.prototype.lastIndexOf.call({ 0: true, 1: 1, length: 2 }, true);
+ } finally {
+ delete Object.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-5.js
new file mode 100644
index 000000000..285fe8fb8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-5.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-i-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-5.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own data property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return false;
+ },
+ configurable: true
+ });
+ return 0 === [Number].lastIndexOf(Number);
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-6.js
new file mode 100644
index 000000000..ff4b805b7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-6.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-6.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ try {
+ Object.defineProperty(Object.prototype, "0", {
+ get: function () {
+ return false;
+ },
+ configurable: true
+ });
+ return 0 === Array.prototype.lastIndexOf.call({ 0: true, 1: 1, length: 2 }, true);
+ } finally {
+ delete Object.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-7.js
new file mode 100644
index 000000000..6d203deef
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-7.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-i-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-7.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is inherited data property on an Array",
+
+ test: function testcase() {
+
+ try {
+ Array.prototype[0] = true;
+ Array.prototype[1] = false;
+ Array.prototype[2] = "true";
+ return 0 === [, , , ].lastIndexOf(true) &&
+ 1 === [, , , ].lastIndexOf(false) &&
+ 2 === [, , , ].lastIndexOf("true");
+ } finally {
+ delete Array.prototype[0];
+ delete Array.prototype[1];
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && ![, 1].hasOwnProperty(0);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-8.js
new file mode 100644
index 000000000..c11adf6cb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-8.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-i-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-8.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ try {
+ Object.prototype[0] = true;
+ Object.prototype[1] = false;
+ Object.prototype[2] = "true";
+ return 0 === Array.prototype.lastIndexOf.call({ length: 3 }, true) &&
+ 1 === Array.prototype.lastIndexOf.call({ length: 3 }, false) &&
+ 2 === Array.prototype.lastIndexOf.call({ length: 3 }, "true");
+ } finally {
+ delete Object.prototype[0];
+ delete Object.prototype[1];
+ delete Object.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-9.js
new file mode 100644
index 000000000..0337113de
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-9.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-i-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-i-9.js",
+
+ description: "Array.prototype.lastIndexOf - element to be retrieved is own accessor property on an Array",
+
+ test: function testcase() {
+
+ var arr = [, , , ];
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ return arr.lastIndexOf(0) === 0 && arr.lastIndexOf(1) === 1 && arr.lastIndexOf(2) === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-1.js
new file mode 100644
index 000000000..95d501002
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-1.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-ii-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-1.js",
+
+ description: "Array.prototype.lastIndexOf - type of array element is different from type of search element",
+
+ test: function testcase() {
+
+ return ["true"].lastIndexOf(true) === -1 &&
+ ["0"].lastIndexOf(0) === -1 &&
+ [false].lastIndexOf(0) === -1 &&
+ [undefined].lastIndexOf(0) === -1 &&
+ [null].lastIndexOf(0) === -1 &&
+ [[]].lastIndexOf(0) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-10.js
new file mode 100644
index 000000000..ee218781b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-10.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-ii-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-10.js",
+
+ description: "Array.prototype.lastIndexOf - both array element and search element are booleans, and they have same value",
+ test: function testcase() {
+
+ return [false, true].lastIndexOf(true) === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-11.js
new file mode 100644
index 000000000..1b43a8dbb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-11.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-ii-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-11.js",
+
+ description: "Array.prototype.lastIndexOf - both array element and search element are Objects, and they refer to the same object",
+ test: function testcase() {
+
+ var obj1 = {};
+ var obj2 = {};
+ var obj3 = obj2;
+ return [obj2, obj1].lastIndexOf(obj3) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-2.js
new file mode 100644
index 000000000..0aba7ea0b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-2.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-ii-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-2.js",
+
+ description: "Array.prototype.lastIndexOf - both type of array element and type of search element are Undefined",
+
+ test: function testcase() {
+
+ return [undefined].lastIndexOf() === 0 && [undefined].lastIndexOf(undefined) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-3.js
new file mode 100644
index 000000000..44550d2f4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-3.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-ii-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-3.js",
+
+ description: "Array.prototype.lastIndexOf - both type of array element and type of search element are Null",
+
+ test: function testcase() {
+
+ return [null].lastIndexOf(null) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-4.js
new file mode 100644
index 000000000..68798bd79
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-4.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-ii-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-4.js",
+
+ description: "Array.prototype.lastIndexOf - search element is NaN",
+ test: function testcase() {
+
+ return [+NaN, NaN, -NaN].lastIndexOf(NaN) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-5.js
new file mode 100644
index 000000000..ccf3acb2a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-5.js
@@ -0,0 +1,37 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-ii-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-5.js",
+
+ description: "Array.prototype.lastIndexOf - search element is -NaN",
+ test: function testcase() {
+ return [+NaN, NaN, -NaN].lastIndexOf(-NaN) === -1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-6.js
new file mode 100644
index 000000000..455877de6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-6.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-ii-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-6.js",
+
+ description: "Array.prototype.lastIndexOf - array element is +0 and search element is -0",
+ test: function testcase() {
+
+ return [+0].lastIndexOf(-0) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-7.js
new file mode 100644
index 000000000..66d2273eb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-7.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-ii-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-7.js",
+
+ description: "Array.prototype.lastIndexOf - array element is -0 and search element is +0",
+ test: function testcase() {
+
+ return [-0].lastIndexOf(+0) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-8.js
new file mode 100644
index 000000000..0d4ec0f96
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-8.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-ii-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-8.js",
+
+ description: "Array.prototype.lastIndexOf - both array element and search element are numbers, and they have same value",
+ test: function testcase() {
+
+ return [-1, 0, 1].lastIndexOf(-1) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-9.js
new file mode 100644
index 000000000..e44c8a160
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-9.js
@@ -0,0 +1,38 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-ii-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-ii-9.js",
+
+ description: "Array.prototype.lastIndexOf - both array element and search element are strings, and they have exactly the same sequence of characters",
+ test: function testcase() {
+
+ return ["abc", "ab", "bca", ""].lastIndexOf("abc") === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-1.js
new file mode 100644
index 000000000..73d541d61
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-1.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.15-8-b-iii-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-1.js",
+
+ description: "Array.prototype.lastIndexOf returns index of last one when more than two elements in array are eligible",
+
+ test: function testcase() {
+
+ return [2, 1, 2, 2, 1].lastIndexOf(2) === 3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-2.js
new file mode 100644
index 000000000..4741854f9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-2.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.15-8-b-iii-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-8-b-iii-2.js",
+
+ description: "Array.prototype.lastIndexOf returns without visiting subsequent element once search value is found",
+
+ test: function testcase() {
+ var arr = [2, 1, , 1, 2];
+ var elementFirstAccessed = false;
+ var elementThirdAccessed = false;
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ elementThirdAccessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ elementFirstAccessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ arr.lastIndexOf(2);
+ return !elementThirdAccessed && !elementFirstAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-1.js
new file mode 100644
index 000000000..57f122fc3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-1.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-9-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-1.js",
+
+description: "Array.prototype.lastIndexOf returns -1 for elements not present",
+
+test: function testcase() {
+ var a = new Array();
+ a[100] = 1;
+ a[99999] = "";
+ a[10] = new Object();
+ a[5555] = 5.5;
+ a[123456] = "str";
+ a[5] = 1E+309;
+ if (a.lastIndexOf(1) !== 100 ||
+ a.lastIndexOf("") !== 99999 ||
+ a.lastIndexOf("str") !== 123456 ||
+ a.lastIndexOf(5.5) !== 5555 ||
+ a.lastIndexOf(1E+309) !== 5 )
+ {
+ return false;
+ }
+ if (a.lastIndexOf(true) === -1 &&
+ a.lastIndexOf(5) === -1 &&
+ a.lastIndexOf("str1") === -1 &&
+ a.lastIndexOf(null) === -1 &&
+ a.lastIndexOf(new Object()) === -1 )
+ {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.lastIndexOf);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-2.js
new file mode 100644
index 000000000..fe86b21e1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-2.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.15-9-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.15/15.4.4.15-9-2.js",
+
+description: "Array.prototype.lastIndexOf returns -1 if 'length' is 0 and does not access any other properties",
+
+test: function testcase() {
+ var accessed = false;
+ var f = {length: 0};
+ Object.defineProperty(f,"0",{get: function () {accessed = true; return 1;}});
+
+ var i = Array.prototype.lastIndexOf.call(f,1);
+
+ if (i === -1 && accessed==false) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.indexOf) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-1.js
new file mode 100644
index 000000000..2101a8c84
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-1.js
@@ -0,0 +1,35 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-0-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-1.js",
+
+description: "Array.prototype.every must exist as a function",
+
+test: function testcase() {
+ var f = Array.prototype.every;
+ if (typeof(f) === "function") {
+ return true;
+ }
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-2.js
new file mode 100644
index 000000000..e2910c1a8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-2.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-0-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-0-2.js",
+
+description: "Array.prototype.every.length must be 1",
+
+test: function testcase() {
+ if (Array.prototype.every.length === 1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-1.js
new file mode 100644
index 000000000..b8fb6c4ba
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-1.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-1.js",
+
+ description: "Array.prototype.every applied to undefined throws a TypeError",
+
+ test: function testcase() {
+ try {
+ Array.prototype.every.call(undefined); // TypeError is thrown if value is undefined
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-10.js
new file mode 100644
index 000000000..576ae3d60
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-10.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-10.js",
+
+ description: "Array.prototype.every applied to the Math object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return ('[object Math]' !== Object.prototype.toString.call(obj));
+ }
+
+ try {
+ Math.length = 1;
+ Math[0] = 1;
+ return !Array.prototype.every.call(Math, callbackfn);
+ } finally {
+ delete Math[0];
+ delete Math.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-11.js
new file mode 100644
index 000000000..c3597b00b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-11.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-11.js",
+
+ description: "Array.prototype.every applied to Date object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return !(obj instanceof Date);
+ }
+
+ var obj = new Date();
+ obj.length = 1;
+ obj[0] = 1;
+
+ return !Array.prototype.every.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-12.js
new file mode 100644
index 000000000..aa64664e6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-12.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-12.js",
+
+ description: "Array.prototype.every applied to RegExp object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return !(obj instanceof RegExp);
+ }
+
+ var obj = new RegExp();
+ obj.length = 1;
+ obj[0] = 1;
+
+ return !Array.prototype.every.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-13.js
new file mode 100644
index 000000000..2d0759930
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-13.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-13.js",
+
+ description: "Array.prototype.every applied to the JSON object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return ('[object JSON]' !== Object.prototype.toString.call(obj));
+ }
+
+ try {
+ JSON.length = 1;
+ JSON[0] = 1;
+ return !Array.prototype.every.call(JSON, callbackfn);
+ } finally {
+ delete JSON.length;
+ delete JSON[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-14.js
new file mode 100644
index 000000000..05951a1a4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-14.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-14.js",
+
+ description: "Array.prototype.every applied to Error object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return !(obj instanceof Error);
+ }
+
+ var obj = new Error();
+ obj.length = 1;
+ obj[0] = 1;
+
+ return !Array.prototype.every.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-15.js
new file mode 100644
index 000000000..05a39edb9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-15.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-15.js",
+
+ description: "Array.prototype.every applied to the Arguments object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return ('[object Arguments]' !== Object.prototype.toString.call(obj));
+ }
+
+ var obj = (function fun() {
+ return arguments;
+ }("a", "b"));
+
+ return !Array.prototype.every.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-2.js
new file mode 100644
index 000000000..9a66d6dd7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-2.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-2.js",
+
+ description: "Array.prototype.every applied to null throws a TypeError",
+
+ test: function testcase() {
+ try {
+ Array.prototype.every.call(null); // TypeError is thrown if value is null
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-3.js
new file mode 100644
index 000000000..1aa9ed6d1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-3.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-3.js",
+
+ description: "Array.prototype.every applied to boolean primitive",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return obj instanceof Boolean;
+ }
+
+ try {
+ Boolean.prototype[0] = 1;
+ Boolean.prototype.length = 1;
+ return Array.prototype.every.call(false, callbackfn) && accessed;
+ } finally {
+ delete Boolean.prototype[0];
+ delete Boolean.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-4.js
new file mode 100644
index 000000000..d44b322b2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-4.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-4.js",
+
+ description: "Array.prototype.every applied to Boolean object",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return obj instanceof Boolean;
+ }
+
+ var obj = new Boolean(true);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+ return Array.prototype.every.call(obj, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-5.js
new file mode 100644
index 000000000..5de5d63bf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-5.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-5.js",
+
+ description: "Array.prototype.every applied to number primitive",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return obj instanceof Number;
+ }
+
+ try {
+ Number.prototype[0] = 1;
+ Number.prototype.length = 1;
+ return Array.prototype.every.call(2.5, callbackfn) && accessed;
+ } finally {
+ delete Number.prototype[0];
+ delete Number.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-6.js
new file mode 100644
index 000000000..ebe1fe1f6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-6.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-6.js",
+
+ description: "Array.prototype.every applied to Number object",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return obj instanceof Number;
+ }
+
+ var obj = new Number(-128);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+ return Array.prototype.every.call(obj, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-7.js
new file mode 100644
index 000000000..30c318f15
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-7.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-7.js",
+
+ description: "Array.prototype.every applied to string primitive",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return !(obj instanceof String);
+ }
+
+ return !Array.prototype.every.call("hello\nworld\\!", callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-8.js
new file mode 100644
index 000000000..1db6d1861
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-8.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-8.js",
+
+ description: "Array.prototype.every applied to String object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return !(obj instanceof String);
+ }
+
+ var obj = new String("hello\nworld\\!");
+
+ return !Array.prototype.every.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-9.js
new file mode 100644
index 000000000..41c43f66a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-9.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-1-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-1-9.js",
+
+ description: "Array.prototype.every applied to Function object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return !(obj instanceof Function);
+ }
+
+ var obj = function (a, b) {
+ return a + b;
+ };
+ obj[0] = 11;
+ obj[1] = 9;
+
+ return !Array.prototype.every.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-1.js
new file mode 100644
index 000000000..f5a2a4684
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-1.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-1.js",
+
+ description: "Array.prototype.every applied to Array-like object, 'length' is an own data property",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: 2
+ };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-10.js
new file mode 100644
index 000000000..d6d5df6eb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-10.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-10.js",
+
+ description: "Array.prototype.every applied to Array-like object, 'length' is an inherited accessor property",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var proto = { };
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.every.call(child, callbackfn1) &&
+ !Array.prototype.every.call(child, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-11.js
new file mode 100644
index 000000000..761227402
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-11.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-11.js",
+
+ description: "Array.prototype.every applied to Array-like object, 'length' is an own accessor property without a get function",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = {
+ 0: 9,
+ 1: 8
+ };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.every.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-12.js
new file mode 100644
index 000000000..c340d7eb3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-12.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-12.js",
+
+ description: "Array.prototype.every - 'length' is own accessor property without a get function that overrides an inherited accessor property",
+
+ test: function testcase() {
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ try {
+ Object.defineProperty(Object.prototype, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var obj = { 0: 9, 1: 8 };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.every.call(obj, callbackfn) && !accessed;
+ } finally {
+ delete Object.prototype.length;
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-13.js
new file mode 100644
index 000000000..b29167f34
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-13.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-13.js",
+
+ description: "Array.prototype.every applied to the Array-like object that 'length' is inherited accessor property without a get function",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 9;
+ child[1] = 8;
+
+ return Array.prototype.every.call(child, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-14.js
new file mode 100644
index 000000000..f92b6acbb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-14.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-14.js",
+
+ description: "Array.prototype.every applied to the Array-like object that 'length' property doesn't exist",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, 1: 12 };
+
+ return Array.prototype.every.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-15.js
new file mode 100644
index 000000000..d3c43d25a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-15.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-15.js",
+
+ description: "Array.prototype.every - 'length' is property of the global object",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 12;
+ fnGlobalObject()[1] = 11;
+ fnGlobalObject()[2] = 9;
+ fnGlobalObject().length = 2;
+ return Array.prototype.every.call(fnGlobalObject(), callbackfn1) &&
+ !Array.prototype.every.call(fnGlobalObject(), callbackfn2);
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-17.js
new file mode 100644
index 000000000..891222900
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-17.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-17.js",
+
+ description: "Array.prototype.every applied to the Arguments object, which implements its own property get method",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var func = function (a, b) {
+ arguments[2] = 9;
+ return Array.prototype.every.call(arguments, callbackfn1) &&
+ !Array.prototype.every.call(arguments, callbackfn2);
+ };
+
+ return func(12, 11);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-18.js
new file mode 100644
index 000000000..2c178201f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-18.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-18.js",
+
+ description: "Array.prototype.every applied to String object, which implements its own property get method",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return parseInt(val, 10) > 1;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return parseInt(val, 10) > 2;
+ }
+
+ var str = new String("432");
+ try {
+ String.prototype[3] = "1";
+ return Array.prototype.every.call(str, callbackfn1) &&
+ !Array.prototype.every.call(str, callbackfn2);
+ } finally {
+ delete String.prototype[3];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-19.js
new file mode 100644
index 000000000..902cce59f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-19.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-19.js",
+
+ description: "Array.prototype.every applied to Function object, which implements its own property get method",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var fun = function (a, b) {
+ return a + b;
+ };
+ fun[0] = 12;
+ fun[1] = 11;
+ fun[2] = 9;
+
+ return Array.prototype.every.call(fun, callbackfn1) &&
+ !Array.prototype.every.call(fun, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-2.js
new file mode 100644
index 000000000..d2b9c5c37
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-2.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-2.js",
+
+ description: "Array.prototype.every - 'length' is own data property on an Array",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ try {
+ Array.prototype[2] = 9;
+
+ return [12, 11].every(callbackfn1) &&
+ ![12, 11].every(callbackfn2);
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-3.js
new file mode 100644
index 000000000..5f9b465f8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-3.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-3.js",
+
+ description: "Array.prototype.every applied to Array-like object, 'length' is an own data property that overrides an inherited data property",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.every.call(child, callbackfn1) &&
+ !Array.prototype.every.call(child, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-4.js
new file mode 100644
index 000000000..29b06b3b3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-4.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-4.js",
+
+ description: "Array.prototype.every - 'length' is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+ var arrProtoLen = 0;
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ try {
+ arrProtoLen = Array.prototype.length;
+ Array.prototype.length = 0;
+ Array.prototype[2] = 9;
+
+ return [12, 11].every(callbackfn1) &&
+ ![12, 11].every(callbackfn2);
+ } finally {
+ Array.prototype.length = arrProtoLen;
+ delete Array.prototype[2];
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-5.js
new file mode 100644
index 000000000..fa0579839
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-5.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-5.js",
+
+ description: "Array.prototype.every applied to Array-like object, 'length' is an own data property that overrides an inherited accessor property",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var proto = { };
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ Object.defineProperty(child, "length", {
+ value: 2,
+ configurable: true
+ });
+
+ return Array.prototype.every.call(child, callbackfn1) &&
+ !Array.prototype.every.call(child, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-6.js
new file mode 100644
index 000000000..a72878d8e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-6.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-6.js",
+
+ description: "Array.prototype.every applied to Array-like object, 'length' is an inherited data property",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var proto = { length: 2 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.every.call(child, callbackfn1) &&
+ !Array.prototype.every.call(child, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-7.js
new file mode 100644
index 000000000..16cea7b06
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-7.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-7.js",
+
+ description: "Array.prototype.every applied to Array-like object, 'length' is an own accessor property",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ obj[0] = 12;
+ obj[1] = 11;
+ obj[2] = 9;
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-8.js
new file mode 100644
index 000000000..574d29b50
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-8.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-8.js",
+
+ description: "Array.prototype.every applied to Array-like object, 'length' is an own accessor property that overrides an inherited data property",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.every.call(child, callbackfn1) &&
+ !Array.prototype.every.call(child, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-9.js
new file mode 100644
index 000000000..566dd0897
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-9.js
@@ -0,0 +1,73 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-2-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-2-9.js",
+
+ description: "Array.prototype.every applied to Array-like object, 'length' is an own accessor property that overrides an inherited accessor property",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.every.call(child, callbackfn1) &&
+ !Array.prototype.every.call(child, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-1.js
new file mode 100644
index 000000000..edfa51f76
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-1.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-1.js",
+
+ description: "Array.prototype.every - value of 'length' is undefined",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 9, length: undefined };
+
+ return Array.prototype.every.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-10.js
new file mode 100644
index 000000000..7d3fe65cd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-10.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-10.js",
+
+ description: "Array.prototype.every - value of 'length' is a number (value is NaN)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 9, length: NaN };
+
+ return Array.prototype.every.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-11.js
new file mode 100644
index 000000000..104f2eae6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-11.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-11.js",
+
+ description: "Array.prototype.every - 'length' is a string containing a positive number",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "2" };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-12.js
new file mode 100644
index 000000000..2ad032b9e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-12.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-12.js",
+
+ description: "Array.prototype.every - 'length' is a string containing a negative number",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 11, 1: 12, 2: 9, length: "-4294967294" };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-13.js
new file mode 100644
index 000000000..993e7752c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-13.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-13.js",
+
+ description: "Array.prototype.every - 'length' is a string containing a decimal number",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "2.5" };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-14.js
new file mode 100644
index 000000000..739bc07c6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-14.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-14.js",
+
+ description: "Array.prototype.every - 'length' is a string containing +/-Infinity",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var objOne = { 0: 9, length: "Infinity" };
+ var objTwo = { 0: 9, length: "+Infinity" };
+ var objThree = { 0: 9, length: "-Infinity" };
+
+ return Array.prototype.every.call(objOne, callbackfn) &&
+ Array.prototype.every.call(objTwo, callbackfn) &&
+ Array.prototype.every.call(objThree, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-15.js
new file mode 100644
index 000000000..65610385b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-15.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-15.js",
+
+ description: "Array.prototype.every - 'length' is a string containing an exponential number",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "2E0" };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-16.js
new file mode 100644
index 000000000..ad048c562
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-16.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-16.js",
+
+ description: "Array.prototype.every - 'length' is a string containing a hex number",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "0x0002" };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-17.js
new file mode 100644
index 000000000..67488cbd5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-17.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-17.js",
+
+ description: "Array.prototype.every - 'length' is a string containing a number with leading zeros",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "0002.00" };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-18.js
new file mode 100644
index 000000000..ff41a15bf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-18.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-18.js",
+
+ description: "Array.prototype.every - value of 'length' is a string that can't convert to a number",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 9, 1: 8, length: "two" };
+
+ return Array.prototype.every.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-19.js
new file mode 100644
index 000000000..74836edca
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-19.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-19.js",
+
+ description: "Array.prototype.every - value of 'length' is an Object which has an own toString method",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var toStringAccessed = false;
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+
+ length: {
+ toString: function () {
+ toStringAccessed = true;
+ return '2';
+ }
+ }
+ };
+
+ // objects inherit the default valueOf() method from Object
+ // that simply returns itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2) && toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-2.js
new file mode 100644
index 000000000..6a6a33634
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-2.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-2.js",
+
+ description: "Array.prototype.every on an Array-like object if 'length' is 1 (length overridden to true(type conversion))",
+
+ test: function testcase() {
+
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 11, 1: 9, length: true };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-20.js
new file mode 100644
index 000000000..3d0823258
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-20.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-20.js",
+
+ description: "Array.prototype.every - value of 'length' is an Object which has an own valueOf method",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var valueOfAccessed = false;
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ }
+ };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2) && valueOfAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-21.js
new file mode 100644
index 000000000..c9bb310b4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-21.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-21.js",
+
+ description: "Array.prototype.every - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ },
+ toString: function () {
+ toStringAccessed = true;
+ return '2';
+ }
+ }
+ };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2) &&
+ valueOfAccessed &&
+ toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-22.js
new file mode 100644
index 000000000..047c7bb8a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-22.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-22.js",
+
+ description: "Array.prototype.every throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values",
+
+ test: function testcase() {
+
+ var callbackfnAccessed = false;
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ function callbackfn(val, idx, obj) {
+ callbackfnAccessed = true;
+ return val > 10;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 12,
+
+ length: {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ },
+ toString: function () {
+ toStringAccessed = true;
+ return {};
+ }
+ }
+ };
+
+ try {
+ Array.prototype.every.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && toStringAccessed && valueOfAccessed && !callbackfnAccessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-23.js
new file mode 100644
index 000000000..ce35412e8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-23.js
@@ -0,0 +1,77 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-23.js",
+
+ description: "Array.prototype.every uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods",
+
+ test: function testcase() {
+
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var valueOfAccessed = false;
+ var toStringAccessed = false;
+
+ var proto = {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ child.toString = function () {
+ toStringAccessed = true;
+ return '1';
+ };
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: child
+ };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2) &&
+ valueOfAccessed && !toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-24.js
new file mode 100644
index 000000000..401d7ce18
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-24.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-24.js",
+
+ description: "Array.prototype.every - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: 2.685 };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-25.js
new file mode 100644
index 000000000..ccea8fd2d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-25.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-25.js",
+
+ description: "Array.prototype.every - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: -4294967294.5
+ };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-28.js
new file mode 100644
index 000000000..1b2f6d0e1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-28.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-28.js",
+
+ description: "Array.prototype.every - value of 'length' is boundary value (2^32)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = {
+ 0: 12,
+ length: 4294967296
+ };
+
+ return Array.prototype.every.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-29.js
new file mode 100644
index 000000000..df75fc959
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-29.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-29.js",
+
+ description: "Array.prototype.every - value of 'length' is boundary value (2^32 + 1)",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 9,
+ length: 4294967297
+ };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-3.js
new file mode 100644
index 000000000..d1a957587
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-3.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-3.js",
+
+ description: "Array.prototype.every - value of 'length' is a number (value is 0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 9, length: 0 };
+
+ return Array.prototype.every.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-4.js
new file mode 100644
index 000000000..81dae595e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-4.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-4.js",
+
+ description: "Array.prototype.every - value of 'length' is a number (value is +0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 9, length: +0 };
+
+ return Array.prototype.every.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-5.js
new file mode 100644
index 000000000..308dcec79
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-5.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-5.js",
+
+ description: "Array.prototype.every - value of 'length' is a number (value is -0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 9, length: -0 };
+
+ return Array.prototype.every.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-6.js
new file mode 100644
index 000000000..d989fe529
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-6.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-6.js",
+
+ description: "Array.prototype.every - value of 'length' is a number (value is positive)",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: 2 };
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-7.js
new file mode 100644
index 000000000..7300d90a1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-7.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-7.js",
+
+ description: "Array.prototype.every - value of 'length' is a number (value is negative)",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: -4294967294 }; //length used to exec while loop is 2
+
+ return Array.prototype.every.call(obj, callbackfn1) &&
+ !Array.prototype.every.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-8.js
new file mode 100644
index 000000000..db4972323
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-8.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-8.js",
+
+ description: "Array.prototype.every - value of 'length' is a number (value is Infinity)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 9, length: Infinity };
+
+ return Array.prototype.every.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-9.js
new file mode 100644
index 000000000..410cb2eff
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-9.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-3-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-3-9.js",
+
+ description: "Array.prototype.every - value of 'length' is a number (value is -Infinity)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 9, length: -Infinity };
+
+ return Array.prototype.every.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-1.js
new file mode 100644
index 000000000..916ac5b0e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-1.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-4-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-1.js",
+
+description: "Array.prototype.every throws TypeError if callbackfn is undefined",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.every();
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-10.js
new file mode 100644
index 000000000..a73b1475f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-10.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-4-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-10.js",
+
+ description: "Array.prototype.every - the exception is not thrown if exception was thrown by step 2",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.every.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-11.js
new file mode 100644
index 000000000..0ad9724e6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-11.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-4-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-11.js",
+
+ description: "Array.prototype.every - the exception is not thrown if exception was thrown by step 3",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.every.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-12.js
new file mode 100644
index 000000000..a24ce9596
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-12.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-4-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-12.js",
+
+ description: "Array.prototype.every - 'callbackfn' is a function",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ return ![11, 9].every(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-15.js
new file mode 100644
index 000000000..0158021b4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-15.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-4-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-15.js",
+
+ description: "Array.prototype.every - calling with no callbackfn is the same as passing undefined for callbackfn",
+
+ test: function testcase() {
+ var obj = { 10: 10 };
+ var lengthAccessed = false;
+ var loopAccessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ lengthAccessed = true;
+ return 20;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ loopAccessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.every.call(obj);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && lengthAccessed && !loopAccessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-3.js
new file mode 100644
index 000000000..7023072f7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-3.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-4-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-3.js",
+
+description: "Array.prototype.every throws TypeError if callbackfn is null",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.every(null);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-4.js
new file mode 100644
index 000000000..a02dc64c6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-4.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-4-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-4.js",
+
+description: "Array.prototype.every throws TypeError if callbackfn is boolean",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.every(true);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-5.js
new file mode 100644
index 000000000..2cfd63f3c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-5.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-4-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-5.js",
+
+description: "Array.prototype.every throws TypeError if callbackfn is number",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.every(5);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-6.js
new file mode 100644
index 000000000..745c70312
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-6.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-4-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-6.js",
+
+description: "Array.prototype.every throws TypeError if callbackfn is string",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.every("abc");
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-7.js
new file mode 100644
index 000000000..a81050135
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-7.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-4-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-7.js",
+
+description: "Array.prototype.every throws TypeError if callbackfn is Object without a Call internal method",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.every( {} );
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-8.js
new file mode 100644
index 000000000..5cc44ee39
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-8.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-4-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-8.js",
+
+ description: "Array.prototype.every - side effects produced by step 2 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.every.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-9.js
new file mode 100644
index 000000000..36744b218
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-9.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-4-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-4-9.js",
+
+ description: "Array.prototype.every - side effects produced by step 3 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "2";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.every.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1-s.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1-s.js
new file mode 100644
index 000000000..e7cfd18ab
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1-s.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2010 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-5-1-s",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1-s.js",
+
+description: "Array.prototype.every - thisArg not passed to strict callbackfn",
+
+test: function testcase() {
+ var innerThisCorrect = false;
+
+ function callbackfn(val, idx, obj) {
+ "use strict";
+ innerThisCorrect = this===undefined;
+ return true;
+ }
+
+ [1].every(callbackfn);
+ return innerThisCorrect;
+ },
+
+strict:1,
+
+precondition: function prereq() {
+ return fnSupportsStrict() && fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1.js
new file mode 100644
index 000000000..dfb1052ba
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-5-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-1.js",
+
+description: "Array.prototype.every - thisArg not passed",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ return this === fnGlobalObject();
+ }
+
+ var arr = [1];
+ if(arr.every(callbackfn) === true)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-10.js
new file mode 100644
index 000000000..3e677296d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-10.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-10.js",
+
+ description: "Array.prototype.every - Array Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objArray = [];
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objArray;
+ }
+
+
+
+ return [11].every(callbackfn, objArray) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-11.js
new file mode 100644
index 000000000..742f5edac
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-11.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-11.js",
+
+ description: "Array.prototype.every - String Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objString = new String();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objString;
+ }
+
+
+
+ return [11].every(callbackfn, objString) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-12.js
new file mode 100644
index 000000000..e8fe0b777
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-12.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-12.js",
+
+ description: "Array.prototype.every - Boolean Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objBoolean = new Boolean();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objBoolean;
+ }
+
+
+
+ return [11].every(callbackfn, objBoolean) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-13.js
new file mode 100644
index 000000000..a13d31fd0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-13.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-13.js",
+
+ description: "Array.prototype.every - Number Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objNumber = new Number();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objNumber;
+ }
+
+ return [11].every(callbackfn, objNumber) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-14.js
new file mode 100644
index 000000000..fab818160
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-14.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-14.js",
+
+ description: "Array.prototype.every - the Math object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === Math;
+ }
+
+ return [11].every(callbackfn, Math) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-15.js
new file mode 100644
index 000000000..c51e3f56f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-15.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-15.js",
+
+ description: "Array.prototype.every - Date Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objDate = new Date();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objDate;
+ }
+
+ return [11].every(callbackfn, objDate) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-16.js
new file mode 100644
index 000000000..a9f660a0e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-16.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-16.js",
+
+ description: "Array.prototype.every - RegExp Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objRegExp = new RegExp();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objRegExp;
+ }
+
+ return [11].every(callbackfn, objRegExp) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-17.js
new file mode 100644
index 000000000..470e74016
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-17.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-17.js",
+
+ description: "Array.prototype.every - the JSON object can be used as thisArg",
+
+ test: function testcase() {
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === JSON;
+ }
+
+ return [11].every(callbackfn, JSON) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-18.js
new file mode 100644
index 000000000..80b7e4852
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-18.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-18.js",
+
+ description: "Array.prototype.every - Error Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objError = new RangeError();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objError;
+ }
+
+ return [11].every(callbackfn, objError) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-19.js
new file mode 100644
index 000000000..5eb9f09c7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-19.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-19.js",
+
+ description: "Array.prototype.every - the Arguments object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var arg;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === arg;
+ }
+
+ (function fun() {
+ arg = arguments;
+ }(1, 2, 3));
+
+ return [11].every(callbackfn, arg) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-2.js
new file mode 100644
index 000000000..3e65fd92d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-2.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-5-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-2.js",
+
+description: "Array.prototype.every - thisArg is Object",
+
+test: function testcase() {
+ var res = false;
+ var o = new Object();
+ o.res = true;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ var arr = [1];
+ if(arr.every(callbackfn, o) === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-21.js
new file mode 100644
index 000000000..7c5bc3569
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-21.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-21.js",
+
+ description: "Array.prototype.every - the global object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === fnGlobalObject();
+ }
+
+ return [11].every(callbackfn, fnGlobalObject()) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-22.js
new file mode 100644
index 000000000..64f13807c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-22.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-22.js",
+
+ description: "Array.prototype.every - boolean primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this.valueOf() === false;
+ }
+
+ return [11].every(callbackfn, false) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-23.js
new file mode 100644
index 000000000..ce2d0b1af
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-23.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-23.js",
+
+ description: "Array.prototype.every - number primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this.valueOf() === 101;
+ }
+
+ return [11].every(callbackfn, 101) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-24.js
new file mode 100644
index 000000000..d20608cca
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-24.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-24.js",
+
+ description: "Array.prototype.every - string primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this.valueOf() === "abc";
+ }
+
+ return [11].every(callbackfn, "abc") && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-3.js
new file mode 100644
index 000000000..092f64106
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-5-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-3.js",
+
+description: "Array.prototype.every - thisArg is Array",
+
+test: function testcase() {
+ var res = false;
+ var a = new Array();
+ a.res = true;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ var arr = [1];
+
+ if(arr.every(callbackfn, a) === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-4.js
new file mode 100644
index 000000000..bd2eca3f9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-4.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-5-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-4.js",
+
+description: "Array.prototype.every - thisArg is object from object template(prototype)",
+
+test: function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ foo.prototype.res = true;
+ var f = new foo();
+ var arr = [1];
+
+ if(arr.every(callbackfn,f) === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-5.js
new file mode 100644
index 000000000..2acca4ffe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-5.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-5-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-5.js",
+
+description: "Array.prototype.every - thisArg is object from object template",
+
+test: function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ var f = new foo();
+ f.res = true;
+ var arr = [1];
+
+ if(arr.every(callbackfn,f) === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-6.js
new file mode 100644
index 000000000..182c61eb7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-6.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-5-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-6.js",
+
+description: "Array.prototype.every - thisArg is function",
+
+test: function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ foo.res = true;
+ var arr = [1];
+
+ if(arr.every(callbackfn,foo) === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-7.js
new file mode 100644
index 000000000..6b0c53908
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-7.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-7.js",
+
+ description: "Array.prototype.every - built-in functions can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === eval;
+ }
+
+ return [11].every(callbackfn, eval) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-9.js
new file mode 100644
index 000000000..d2aa45652
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-9.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-5-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-5-9.js",
+
+ description: "Array.prototype.every - Function Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objFunction = function () { };
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objFunction;
+ }
+
+ return [11].every(callbackfn, objFunction) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-1.js
new file mode 100644
index 000000000..49e92b660
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-1.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-7-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-1.js",
+
+description: "Array.prototype.every considers new elements added to array after the call",
+
+test: function testcase() {
+
+ var calledForThree = false;
+
+ function callbackfn(val, Idx, obj)
+ {
+ arr[2] = 3;
+ if(val == 3)
+ calledForThree = true;
+ return true;
+ }
+
+ var arr = [1,2,,4,5];
+
+ var res = arr.every(callbackfn);
+
+ return calledForThree;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-2.js
new file mode 100644
index 000000000..5a2294970
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-7-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-2.js",
+
+description: "Array.prototype.every considers new value of elements in array after the call",
+
+test: function testcase() {
+
+ function callbackfn(val, Idx, obj)
+ {
+ arr[4] = 6;
+ if(val < 6)
+ return true;
+ else
+ return false;
+ }
+
+ var arr = [1,2,3,4,5];
+
+ if(arr.every(callbackfn) === false)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-3.js
new file mode 100644
index 000000000..041f8ace4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-3.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-7-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-3.js",
+
+description: "Array.prototype.every doesn't visit deleted elements in array after the call",
+
+test: function testcase() {
+
+ function callbackfn(val, Idx, obj)
+ {
+ delete arr[2];
+ if(val == 3)
+ return false;
+ else
+ return true;
+ }
+
+ var arr = [1,2,3,4,5];
+
+ if(arr.every(callbackfn) === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-4.js
new file mode 100644
index 000000000..449c873e2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-7-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-4.js",
+
+description: "Array.prototype.every doesn't visit deleted elements when Array.length is decreased",
+
+test: function testcase() {
+
+ function callbackfn(val, Idx, obj)
+ {
+ arr.length = 3;
+ if(val < 4)
+ return true;
+ else
+ return false;
+ }
+
+ var arr = [1,2,3,4,6];
+
+ if(arr.every(callbackfn) === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-5.js
new file mode 100644
index 000000000..c474a28b3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-5.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-7-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-5.js",
+
+description: "Array.prototype.every doesn't consider newly added elements in sparse array",
+
+test: function testcase() {
+
+ function callbackfn(val, Idx, obj)
+ {
+ arr[1000] = 3;
+ if(val < 3)
+ return true;
+ else
+ return false;
+ }
+
+ var arr = new Array(10);
+ arr[1] = 1;
+ arr[2] = 2;
+
+ if(arr.every(callbackfn) === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-6.js
new file mode 100644
index 000000000..e4cbc4500
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-6.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-7-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-6.js",
+
+description: "Array.prototype.every visits deleted element in array after the call when same index is also present in prototype",
+
+test: function testcase() {
+
+ function callbackfn(val, Idx, obj)
+ {
+ delete arr[2];
+ if(val == 3)
+ return false;
+ else
+ return true;
+ }
+
+ Array.prototype[2] = 3;
+ var arr = [1,2,3,4,5];
+
+ var res = arr.every(callbackfn);
+ delete Array.prototype[2];
+
+ if(res === false)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-7.js
new file mode 100644
index 000000000..a57a698ab
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-7.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.16-7-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-7.js",
+
+ description: "Array.prototype.every - Deleting the array itself within the callbackfn of Array.prototype.every is successful once Array.prototype.every is called for all elements",
+
+ test: function testcase() {
+ var o = new Object();
+ o.arr = [1, 2, 3, 4, 5];
+
+ function callbackfn(val, Idx, obj) {
+ delete o.arr;
+ if (val === Idx + 1)
+ return true;
+ else
+ return false;
+ }
+
+ return o.arr.every(callbackfn) && !o.hasOwnProperty("arr");
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-8.js
new file mode 100644
index 000000000..3af5b7901
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-8.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-8.js",
+
+ description: "Array.prototype.every - no observable effects occur if len is 0",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, 1: 12, length: 0 };
+
+ return Array.prototype.every.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-9.js
new file mode 100644
index 000000000..441ddca9d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-9.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-9.js",
+
+ description: "Array.prototype.every - modifications to length don't change number of iterations",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ return val > 10;
+ }
+
+ var obj = { 1: 12, 2: 9, length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ obj.length = 3;
+ return 11;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.every.call(obj, callbackfn) && 2 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-1.js
new file mode 100644
index 000000000..f4d6baf68
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-1.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-7-b-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-1.js",
+
+description: "Array.prototype.every - callbackfn not called for indexes never been assigned values",
+
+test: function testcase() {
+
+ var callCnt = 0.;
+ function callbackfn(val, Idx, obj)
+ {
+ callCnt++;
+ return true;
+ }
+
+ var arr = new Array(10);
+ arr[1] = undefined;
+ arr.every(callbackfn);
+ if( callCnt === 1)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-10.js
new file mode 100644
index 000000000..8b0ebb901
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-10.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-10.js",
+
+ description: "Array.prototype.every - deleting property of prototype causes prototype index property not to be visited on an Array-like Object",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return idx !== 1;
+ }
+ var arr = { 2: 2, length: 20 };
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete Object.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ return Array.prototype.every.call(arr, callbackfn) && accessed;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-11.js
new file mode 100644
index 000000000..2ab3c435c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-11.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-11.js",
+
+ description: "Array.prototype.every - deleting property of prototype causes prototype index property not to be visited on an Array",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return idx !== 1;
+ }
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete Array.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ return arr.every(callbackfn) && accessed;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-12.js
new file mode 100644
index 000000000..045453021
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-12.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-12.js",
+
+ description: "Array.prototype.every - deleting own property with prototype property causes prototype index property to be visited on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var arr = { 0: 0, 1: 111, 2: 2, length: 10 };
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ return !Array.prototype.every.call(arr, callbackfn);
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-13.js
new file mode 100644
index 000000000..d1720f262
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-13.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-13.js",
+
+ description: "Array.prototype.every - deleting own property with prototype property causes prototype index property to be visited on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var arr = [0, 111, 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ return !arr.every(callbackfn);
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-14.js
new file mode 100644
index 000000000..1786ec8d4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-14.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-14.js",
+
+ description: "Array.prototype.every - decreasing length of array causes index property not to be visited",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return idx !== 3;
+ }
+ var arr = [0, 1, 2, "last"];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr.length = 3;
+ return 0;
+ },
+ configurable: true
+ });
+
+ return arr.every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-15.js
new file mode 100644
index 000000000..b2857c1fe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-15.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-15.js",
+
+ description: "Array.prototype.every - decreasing length of array with prototype property causes prototype index property to be visited",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 2 && val === "prototype") {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var arr = [0, 1, 2];
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "prototype";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ return !arr.every(callbackfn);
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-16.js
new file mode 100644
index 000000000..0dfbf7aaf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-16.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-16.js",
+
+ description: "Array.prototype.every - decreasing length of array does not delete non-configurable properties",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 2 && val === "unconfigurable") {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ var arr = [0, 1, 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "unconfigurable";
+ },
+ configurable: false
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ return !arr.every(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-2.js
new file mode 100644
index 000000000..cff483bf6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-2.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-2.js",
+
+ description: "Array.prototype.every - added properties in step 2 are visible here",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 2 && val === "length") {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ var arr = { };
+
+ Object.defineProperty(arr, "length", {
+ get: function () {
+ arr[2] = "length";
+ return 3;
+ },
+ configurable: true
+ });
+
+ return !Array.prototype.every.call(arr, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-3.js
new file mode 100644
index 000000000..81c09da6b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-3.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-3.js",
+
+ description: "Array.prototype.every - deleted properties in step 2 are visible here",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return idx !== 2;
+ }
+ var arr = { 2: 6.99, 8: 19};
+
+ Object.defineProperty(arr, "length", {
+ get: function () {
+ delete arr[2];
+ return 10;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.every.call(arr, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-4.js
new file mode 100644
index 000000000..726db25d1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-4.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-4.js",
+
+ description: "Array.prototype.every - properties added into own object after current position are visited on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ var arr = { length: 2 };
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ return !Array.prototype.every.call(arr, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-5.js
new file mode 100644
index 000000000..28e0aac75
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-5.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-5.js",
+
+ description: "Array.prototype.every - properties added into own object after current position are visited on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ return !arr.every(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-6.js
new file mode 100644
index 000000000..7fb570b9e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-6.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-6.js",
+
+ description: "Array.prototype.every - properties can be added to prototype after current position are visited on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 6.99) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var arr = { length: 2 };
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ return !Array.prototype.every.call(arr, callbackfn);
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-7.js
new file mode 100644
index 000000000..1f462a5f9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-7.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-7.js",
+
+ description: "Array.prototype.every - properties can be added to prototype after current position are visited on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 6.99) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ return !arr.every(callbackfn);
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-8.js
new file mode 100644
index 000000000..1c5317a52
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-8.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-8.js",
+
+ description: "Array.prototype.every - deleting own property causes index property not to be visited on an Array-like object",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return idx !== 1;
+ }
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.every.call(obj, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-9.js
new file mode 100644
index 000000000..797f8be4c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-9.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-b-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-b-9.js",
+
+ description: "Array.prototype.every - deleting own property causes index property not to be visited on an Array",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return idx !== 1;
+ }
+ var arr = [1, 2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "6.99";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ return arr.every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-1.js
new file mode 100644
index 000000000..3408c9488
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-1.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-1.js",
+
+ description: "Array.prototype.every - element to be retrieved is own data property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = { };
+ function callbackfn(val, idx, obj) {
+ if (idx === 5) {
+ return val !== kValue;
+ } else {
+ return true;
+ }
+ }
+
+ var obj = { 5: kValue, length: 100 };
+
+ return !Array.prototype.every.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-10.js
new file mode 100644
index 000000000..ec061426a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-10.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-10.js",
+
+ description: "Array.prototype.every - element to be retrieved is own accessor property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 2) {
+ return val !== 12;
+ } else {
+ return true;
+ }
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return 12;
+ },
+ configurable: true
+ });
+
+ return !arr.every(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-11.js
new file mode 100644
index 000000000..be5ad8ac7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-11.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-11.js",
+
+ description: "Array.prototype.every - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 5;
+ } else {
+ return true;
+ }
+ }
+
+ var proto = { 0: 5, 1: 6 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ Object.defineProperty(child, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ return !Array.prototype.every.call(child, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-12.js
new file mode 100644
index 000000000..67653000a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-12.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-12.js",
+
+ description: " Array.prototype.every - element to be retrieved is own accessor property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 10;
+ } else {
+ return true;
+ }
+ }
+
+ var arr = [];
+ try {
+ Array.prototype[0] = 10;
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return 111;
+ },
+ configurable: true
+ });
+
+ return !arr.every(callbackfn);
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-13.js
new file mode 100644
index 000000000..a030c5eb7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-13.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-13.js",
+
+ description: "Array.prototype.every - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return val === 6;
+ } else {
+ return true;
+ }
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 6;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ Object.defineProperty(child, "1", {
+ get: function () {
+ return 12;
+ },
+ configurable: true
+ });
+
+
+ return !Array.prototype.every.call(child, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-14.js
new file mode 100644
index 000000000..f5fb91364
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-14.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-14.js",
+
+ description: " Array.prototype.every - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 5;
+ } else {
+ return true;
+ }
+ }
+
+ var arr = [];
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 5;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ return !arr.every(callbackfn);
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-15.js
new file mode 100644
index 000000000..bd50b27aa
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-15.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-15.js",
+
+ description: "Array.prototype.every - element to be retrieved is inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return val !== 11;
+ } else {
+ return true;
+ }
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 20;
+
+ return !Array.prototype.every.call(child, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-16.js
new file mode 100644
index 000000000..baef33bc3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-16.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-16.js",
+
+ description: "Array.prototype.every - element to be retrieved is inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val !== 11;
+ } else {
+ return true;
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ return ![, , , ].every(callbackfn);
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-17.js
new file mode 100644
index 000000000..70e8b5d04
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-17.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-17.js",
+
+ description: "Array.prototype.every - element to be retrieved is own accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return typeof val === "undefined";
+ }
+
+ var obj = { length: 2 };
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.every.call(obj, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-18.js
new file mode 100644
index 000000000..e98b9d1ef
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-18.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-18.js",
+
+ description: "Array.prototype.every - element to be retrieved is own accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return typeof val === "undefined";
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ return arr.every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-19.js
new file mode 100644
index 000000000..6ab7bc47d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-19.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-19.js",
+
+ description: "Array.prototype.every - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return typeof val === "undefined";
+ }
+
+ var obj = { length: 2 };
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+ try {
+ Object.prototype[1] = 10;
+ return Array.prototype.every.call(obj, callbackfn) && accessed;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-2.js
new file mode 100644
index 000000000..13939b80b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-2.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-2.js",
+
+ description: "Array.prototype.every - element to be retrieved is own data property on an Array",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ return val === 11;
+ }
+
+ return [11].every(callbackfn) && 1 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-20.js
new file mode 100644
index 000000000..48908c3bc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-20.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-20.js",
+
+ description: "Array.prototype.every - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return typeof val === "undefined";
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[0] = 100;
+ return arr.every(callbackfn) && accessed;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-21.js
new file mode 100644
index 000000000..c39fb241f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-21.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-21.js",
+
+ description: "Array.prototype.every - element to be retrieved is inherited accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return typeof val === "undefined";
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+
+ return Array.prototype.every.call(child, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-22.js
new file mode 100644
index 000000000..e13fb45f0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-22.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-22.js",
+
+ description: "Array.prototype.every - element to be retrieved is inherited accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return typeof val === "undefined";
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ return [, ].every(callbackfn) && accessed;
+ } finally {
+ delete Array.prototype[0];
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-23.js
new file mode 100644
index 000000000..35d51ec53
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-23.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-23.js",
+
+ description: "Array.prototype.every - This object is an global object which contains index property",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val !== 11;
+ } else {
+ return true;
+ }
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 11;
+ fnGlobalObject().length = 1;
+ return !Array.prototype.every.call(fnGlobalObject(), callbackfn);
+ } finally {
+ delete fnGlobalObject()[0];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-25.js
new file mode 100644
index 000000000..be2a2cff2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-25.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-25.js",
+
+ description: "Array.prototype.every - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ return val === 11;
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.every.call(arguments, callbackfn);
+ };
+
+ return func(11) && called === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-26.js
new file mode 100644
index 000000000..35b9be0d3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-26.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-26.js",
+
+ description: "Array.prototype.every - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ if (idx === 0) {
+ return val === 11;
+ } else if (idx === 1) {
+ return val === 9;
+ } else {
+ return false;
+ }
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.every.call(arguments, callbackfn);
+ };
+
+ return func(11, 9) && called === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-27.js
new file mode 100644
index 000000000..3366eb989
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-27.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-27.js",
+
+ description: "Array.prototype.every - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ if (idx < 2) {
+ return val > 10;
+ } else if (idx === 2) {
+ return val < 10;
+ } else {
+ return false;
+ }
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.every.call(arguments, callbackfn);
+ };
+
+ return func(11, 12, 9) && called === 3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-28.js
new file mode 100644
index 000000000..3db4c0e8b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-28.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-28.js",
+
+ description: "Array.prototype.every - element changed by getter on previous iterations is observed on an Array",
+
+ test: function testcase() {
+
+ var preIterVisible = false;
+ var arr = [];
+
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ preIterVisible = true;
+ return 11;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 9;
+ } else {
+ return 11;
+ }
+ },
+ configurable: true
+ });
+
+ return !arr.every(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-29.js
new file mode 100644
index 000000000..62065eb27
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-29.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-29.js",
+
+ description: "Array.prototype.every - element changed by getter on previous iterations is observed on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var preIterVisible = false;
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ preIterVisible = true;
+ return 11;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 9;
+ } else {
+ return 13;
+ }
+ },
+ configurable: true
+ });
+
+ return !Array.prototype.every.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-3.js
new file mode 100644
index 000000000..7ecdaaf6f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-3.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-3.js",
+
+ description: "Array.prototype.every - element to be retrieved is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 5) {
+ return val === 100;
+ } else {
+ return true;
+ }
+ }
+
+ var proto = { 0: 11, 5: 100 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[5] = "abc";
+ child.length = 10;
+
+ return !Array.prototype.every.call(child, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-30.js
new file mode 100644
index 000000000..84de3a56c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-30.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-30.js",
+
+ description: "Array.prototype.every - unnhandled exceptions happened in getter terminate iteration on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ if (idx > 1) {
+ accessed = true;
+ }
+ return true;
+ }
+
+ var obj = { 0: 11, 5: 10, 10: 8, length: 20 };
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.every.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-31.js
new file mode 100644
index 000000000..f8ce5a10f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-31.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-31.js",
+
+ description: "Array.prototype.every - unhandled exceptions happened in getter terminate iteration on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ if (idx > 1) {
+ accessed = true;
+ }
+ return true;
+ }
+
+ var arr = [];
+ arr[5] = 10;
+ arr[10] = 100;
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ arr.every(callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-4.js
new file mode 100644
index 000000000..b10450127
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-4.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-4.js",
+
+ description: "Array.prototype.every - element to be retrieved is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+ var called = 0;
+ function callbackfn(val, idx, obj) {
+ called++;
+ return val === 12;
+ }
+
+ try {
+ Array.prototype[0] = 11;
+ Array.prototype[1] = 11;
+
+ return [12, 12].every(callbackfn) && called === 2;
+ } finally {
+ delete Array.prototype[0];
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-5.js
new file mode 100644
index 000000000..6bbe6be8f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-5.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-5.js",
+
+ description: "Array.prototype.every - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 5;
+ } else {
+ return true;
+ }
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return 5;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ Object.defineProperty(child, "0", {
+ value: 11,
+ configurable: true
+ });
+ child[1] = 12;
+
+ return !Array.prototype.every.call(child, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-6.js
new file mode 100644
index 000000000..ddf02dd9d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-6.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-6.js",
+
+ description: "Array.prototype.every - element to be retrieved is own data property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val === 11;
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 9;
+ },
+ configurable: true
+ });
+ return [11].every(callbackfn) && accessed;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-7.js
new file mode 100644
index 000000000..948330efc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-7.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-7.js",
+
+ description: "Array.prototype.every - element to be retrieved is inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = 'abc';
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 5) {
+ return val !== kValue;
+ } else {
+ return true;
+ }
+ }
+
+ var proto = { 5: kValue };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ return !Array.prototype.every.call(child, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-8.js
new file mode 100644
index 000000000..96c4e4b45
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-8.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-8.js",
+
+ description: "Array.prototype.every - element to be retrieved is inherited data property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return val !== 13;
+ } else {
+ return true;
+ }
+ }
+
+ try {
+ Array.prototype[1] = 13;
+ return ![, , , ].every(callbackfn);
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && ![, 1].hasOwnProperty(0);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-9.js
new file mode 100644
index 000000000..6e6ca93d9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-9.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-i-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-i-9.js",
+
+ description: "Array.prototype.every - element to be retrieved is own accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val !== 11;
+ } else {
+ return true;
+ }
+ }
+
+ var obj = { 10: 10, length: 20 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ return !Array.prototype.every.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-1.js
new file mode 100644
index 000000000..dbaa14488
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-1.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-7-c-ii-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-1.js",
+
+description: "Array.prototype.every - callbackfn called with correct parameters",
+
+test: function testcase() {
+
+ function callbackfn(val, Idx, obj)
+ {
+ if(obj[Idx] === val)
+ return true;
+ }
+
+ var arr = [0,1,2,3,4,5,6,7,8,9];
+
+ if(arr.every(callbackfn) === true)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-10.js
new file mode 100644
index 000000000..753b61235
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-10.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-10.js",
+
+ description: "Array.prototype.every - callbackfn is called with 1 formal parameter",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val) {
+ called++;
+ return val > 10;
+ }
+
+ return [11, 12].every(callbackfn) && 2 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-11.js
new file mode 100644
index 000000000..d16315d97
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-11.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-11.js",
+
+ description: "Array.prototype.every - callbackfn is called with 2 formal parameter",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx) {
+ called++;
+ return val > 10 && arguments[2][idx] === val;
+ }
+
+ return [11, 12].every(callbackfn) && 2 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-12.js
new file mode 100644
index 000000000..d9889b016
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-12.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-12.js",
+
+ description: "Array.prototype.every - callbackfn is called with 3 formal parameter",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ return val > 10 && obj[idx] === val;
+ }
+
+ return [11, 12, 13].every(callbackfn) && 3 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-13.js
new file mode 100644
index 000000000..185f587f8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-13.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-13.js",
+
+ description: "Array.prototype.every - callbackfn that uses arguments object to get parameter value",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn() {
+ called++;
+ return arguments[2][arguments[1]] === arguments[0];
+ }
+
+ return [11, 12].every(callbackfn) && 2 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-16.js
new file mode 100644
index 000000000..86ad0aa19
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-16.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-16.js",
+
+ description: "Array.prototype.every - 'this' of 'callbackfn' is a Boolean object when T is not an object (T is a boolean primitive)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this.valueOf() !== false;
+ }
+
+ var obj = { 0: 11, length: 2 };
+
+ return !Array.prototype.every.call(obj, callbackfn, false) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-17.js
new file mode 100644
index 000000000..c5de2558d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-17.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-17.js",
+
+ description: "Array.prototype.every -'this' of 'callbackfn' is a Number object when T is not an object (T is a number primitive)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, o) {
+ accessed = true;
+ return 5 === this.valueOf();
+ }
+
+ var obj = { 0: 11, length: 2 };
+
+ return Array.prototype.every.call(obj, callbackfn, 5) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-18.js
new file mode 100644
index 000000000..bed0efb6d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-18.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-18.js",
+
+ description: "Array.prototype.every - 'this' of 'callbackfn' is an String object when T is not an object (T is a string primitive)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return 'hello' === this.valueOf();
+ }
+
+ var obj = { 0: 11, length: 2 };
+
+ return Array.prototype.every.call(obj, callbackfn, "hello") && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-19.js
new file mode 100644
index 000000000..345165ed0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-19.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-19.js",
+
+ description: "Array.prototype.every - non-indexed properties are not called",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ return val !== 8;
+ }
+
+ var obj = { 0: 11, 10: 12, non_index_property: 8, length: 20 };
+
+ return Array.prototype.every.call(obj, callbackfn) && 2 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-2.js
new file mode 100644
index 000000000..8da4147ed
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-2.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-7-c-ii-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-2.js",
+
+description: "Array.prototype.every - callbackfn takes 3 arguments",
+
+test: function testcase() {
+
+ function callbackfn(val, Idx, obj)
+ {
+ if(arguments.length === 3) //verify if callbackfn was called with 3 parameters
+ return true;
+ }
+
+ var arr = [0,1,true,null,new Object(),"five"];
+ arr[999999] = -6.6;
+
+ if(arr.every(callbackfn) === true)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-20.js
new file mode 100644
index 000000000..27b365977
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-20.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-20.js",
+
+ description: "Array.prototype.every - callbackfn called with correct parameters (thisArg is correct)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return 10 === this.threshold;
+ }
+
+ var thisArg = { threshold: 10 };
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.every.call(obj, callbackfn, thisArg);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-21.js
new file mode 100644
index 000000000..646e09db6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-21.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-21.js",
+
+ description: "Array.prototype.every - callbackfn called with correct parameters (kValue is correct)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ if (idx === 0) {
+ return val === 11;
+ }
+
+ if (idx === 1) {
+ return val === 12;
+ }
+
+ }
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ return Array.prototype.every.call(obj, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-22.js
new file mode 100644
index 000000000..9a221130b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-22.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-22.js",
+
+ description: "Array.prototype.every - callbackfn called with correct parameters (the index k is correct)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ if (val === 11) {
+ return idx === 0;
+ }
+
+ if (val === 12) {
+ return idx === 1;
+ }
+
+ }
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ return Array.prototype.every.call(obj, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-23.js
new file mode 100644
index 000000000..cf0caaecb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-23.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-23.js",
+
+ description: "Array.prototype.every - callbackfn called with correct parameters (this object O is correct)",
+
+ test: function testcase() {
+
+ var called = 0;
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ function callbackfn(val, idx, o) {
+ called++;
+ return obj === o;
+ }
+
+ return Array.prototype.every.call(obj, callbackfn) && 2 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-3.js
new file mode 100644
index 000000000..baea080df
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-3.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-7-c-ii-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-3.js",
+
+description: "Array.prototype.every immediately returns false if callbackfn returns false",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ if(idx > 5)
+ return false;
+ else
+ return true;
+ }
+
+ var arr = [0,1,2,3,4,5,6,7,8,9];
+
+ if(arr.every(callbackfn) === false && callCnt === 7)
+ return true;
+
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-4.js
new file mode 100644
index 000000000..6450fcb78
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-4.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-4.js",
+
+ description: "Array.prototype.every - k values are passed in ascending numeric order",
+
+ test: function testcase() {
+
+ var arr = [0, 1, 2, 3, 4, 5];
+ var lastIdx = 0;
+ var called = 0;
+ function callbackfn(val, idx, o) {
+ called++;
+ if (lastIdx !== idx) {
+ return false;
+ } else {
+ lastIdx++;
+ return true;
+ }
+ }
+
+ return arr.every(callbackfn) && arr.length === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-5.js
new file mode 100644
index 000000000..82c85a621
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-5.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-5.js",
+
+ description: "Array.prototype.every - k values are accessed during each iteration and not prior to starting the loop on an Array",
+
+ test: function testcase() {
+ var called = 0;
+ var kIndex = [];
+
+ //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time.
+ function callbackfn(val, idx, obj) {
+ called++;
+ //Each position should be visited one time, which means k is accessed one time during iterations.
+ if (typeof kIndex[idx] === "undefined") {
+ //when current position is visited, its previous index should has been visited.
+ if (idx !== 0 && typeof kIndex[idx - 1] === "undefined") {
+ return false;
+ }
+ kIndex[idx] = 1;
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ return [11, 12, 13, 14].every(callbackfn, undefined) && 4 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-6.js
new file mode 100644
index 000000000..a8ffac80b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-6.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-6.js",
+
+ description: "Array.prototype.every - arguments to callbackfn are self consistent",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var thisArg = {};
+ var obj = { 0: 11, length: 1 };
+
+ function callbackfn() {
+ accessed = true;
+ return this === thisArg &&
+ arguments[0] === 11 &&
+ arguments[1] === 0 &&
+ arguments[2] === obj;
+ }
+
+ return Array.prototype.every.call(obj, callbackfn, thisArg) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-7.js
new file mode 100644
index 000000000..9bd5e9b6e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-7.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-7.js",
+
+ description: "Array.prototype.every - unhandled exceptions happened in callbackfn terminate iteration",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ if (called === 1) {
+ throw new Error("Exception occurred in callbackfn");
+ }
+ return true;
+ }
+
+ var obj = { 0: 11, 4: 10, 10: 8, length: 20 };
+
+ try {
+ Array.prototype.every.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return 1 === called;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-8.js
new file mode 100644
index 000000000..a06e1e077
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-8.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-8.js",
+
+ description: "Array.prototype.every - element changed by callbackfn on previous iterations is observed",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ function callbackfn(val, idx, o) {
+ if (idx === 0) {
+ obj[idx + 1] = 8;
+ }
+ return val > 10;
+ }
+
+
+
+ return !Array.prototype.every.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-9.js
new file mode 100644
index 000000000..5e121edff
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-9.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-ii-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-ii-9.js",
+
+ description: "Array.prototype.every - callbackfn is called with 0 formal parameter",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn() {
+ called++;
+ return true;
+ }
+
+ return [11, 12].every(callbackfn) && 2 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-1.js
new file mode 100644
index 000000000..0311d35fd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-1.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-1.js",
+
+ description: "Array.prototype.every - return value of callbackfn is undefined",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var obj = { 0: 11, length: 1 };
+
+ function callbackfn(val, idx, o) {
+ accessed = true;
+ return undefined;
+ }
+
+
+
+ return !Array.prototype.every.call(obj, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-10.js
new file mode 100644
index 000000000..bc9f46691
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-10.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-10.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a number (value is Infinity)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return Infinity;
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-11.js
new file mode 100644
index 000000000..d4678b803
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-11.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-11.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a number (value is -Infinity)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return -Infinity;
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-12.js
new file mode 100644
index 000000000..8da2d649c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-12.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-12.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a number (value is NaN)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return NaN;
+ }
+
+ return ![11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-13.js
new file mode 100644
index 000000000..a87d1fa00
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-13.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-13.js",
+
+ description: "Array.prototype.every - return value of callbackfn is an empty string",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return "";
+ }
+
+ return ![11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-14.js
new file mode 100644
index 000000000..e45abfcaa
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-14.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-14.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a non-empty string",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return "non-empty string";
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-15.js
new file mode 100644
index 000000000..a7ec2bf35
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-15.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-15.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a Function object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return function () { };
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-16.js
new file mode 100644
index 000000000..d20e5aef2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-16.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-16.js",
+
+ description: "Array.prototype.every - return value of callbackfn is an Array object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return [];
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-17.js
new file mode 100644
index 000000000..2cd087899
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-17.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-17.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a String object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return new String();
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-18.js
new file mode 100644
index 000000000..0b9ba7b13
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-18.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-18.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a Boolean object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return new Boolean();
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-19.js
new file mode 100644
index 000000000..ec258b07b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-19.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-19.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a Number object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return new Number();
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-2.js
new file mode 100644
index 000000000..d4e81fb08
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-2.js",
+
+ description: "Array.prototype.every - return value of callbackfn is null",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var obj = { 0: 11, length: 1 };
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return null;
+ }
+
+
+
+ return !Array.prototype.every.call(obj, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-20.js
new file mode 100644
index 000000000..9455283db
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-20.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-20.js",
+
+ description: "Array.prototype.every - return value of callbackfn is the Math object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return Math;
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-21.js
new file mode 100644
index 000000000..af3cda71b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-21.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-21.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a Date object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return new Date();
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-22.js
new file mode 100644
index 000000000..244453a1d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-22.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-22.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a RegExp object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return new RegExp();
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-23.js
new file mode 100644
index 000000000..be9fda290
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-23.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-23.js",
+
+ description: "Array.prototype.every - return value of callbackfn is the JSON object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return JSON;
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-24.js
new file mode 100644
index 000000000..0621ee437
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-24.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-24.js",
+
+ description: "Array.prototype.every - return value of callbackfn is an Error object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return new EvalError();
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-25.js
new file mode 100644
index 000000000..152d29528
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-25.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-25.js",
+
+ description: "Array.prototype.every - return value of callbackfn is the Arguments object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return arguments;
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-27.js
new file mode 100644
index 000000000..39230af6f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-27.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-27.js",
+
+ description: "Array.prototype.every - return value of callbackfn is the global object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return fnGlobalObject();
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-28.js
new file mode 100644
index 000000000..f2861e1f1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-28.js
@@ -0,0 +1,72 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-28.js",
+
+ description: "Array.prototype.every - false prevents further side effects",
+
+ test: function testcase() {
+
+ var result = false;
+ var obj = { length: 20 };
+
+ function callbackfn(val, idx, obj) {
+ if (idx > 1) {
+ result = true;
+ }
+ return val > 10;
+ }
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 8;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ result = true;
+ return 8;
+ },
+ configurable: true
+ });
+
+ return !Array.prototype.every.call(obj, callbackfn) && !result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-29.js
new file mode 100644
index 000000000..da5ac19ab
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-29.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-29.js",
+
+ description: "Array.prototype.every - return value (new Boolean(false)) of callbackfn is treated as true value",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return new Boolean(false);
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-3.js
new file mode 100644
index 000000000..b3a7c4441
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-3.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a boolean (value is false)",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var obj = { 0: 11, length: 1 };
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return false;
+ }
+
+ return !Array.prototype.every.call(obj, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-4.js
new file mode 100644
index 000000000..a0f4a1b32
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-4.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a boolean (value is true)",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var obj = { 0: 11, length: 1 };
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+
+
+ return Array.prototype.every.call(obj, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-5.js
new file mode 100644
index 000000000..e895ab454
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-5.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-5.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a number (value is 0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return 0;
+ }
+
+ return ![11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-6.js
new file mode 100644
index 000000000..abba851be
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-6.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-6.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a number (value is +0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return +0;
+ }
+
+ return ![11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-7.js
new file mode 100644
index 000000000..31186608a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-7.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-7.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a nunmber (value is -0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return -0;
+ }
+
+ return ![11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-8.js
new file mode 100644
index 000000000..70b366576
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-8.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-8.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a number (value is positive number)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return 5;
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-9.js
new file mode 100644
index 000000000..38a9a7cb7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-9.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.16-7-c-iii-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-7-c-iii-9.js",
+
+ description: "Array.prototype.every - return value of callbackfn is a number (value is negative number)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return -5;
+ }
+
+ return [11].every(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-1.js
new file mode 100644
index 000000000..cac3dff88
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-1.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-8-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-1.js",
+
+description: "Array.prototype.every returns true if 'length' is 0 (empty array)",
+
+test: function testcase() {
+ function cb() {}
+ var i = [].every(cb);
+ if (i === true) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-10.js
new file mode 100644
index 000000000..371dfa595
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-10.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-8-10",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-10.js",
+
+description: "Array.prototype.every - subclassed array when length is reduced",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 2;
+
+ function cb(val)
+ {
+ if(val>2)
+ return false;
+ else
+ return true;
+ }
+ var i = f.every(cb);
+
+ if (i === true) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-11.js
new file mode 100644
index 000000000..abb942291
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-11.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-8-11",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-11.js",
+
+description: "Array.prototype.every returns true when all calls to callbackfn return true",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ return true;
+ }
+
+ var arr = [0,1,2,3,4,5,6,7,8,9];
+
+ if(arr.every(callbackfn) === true && callCnt === 10)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-12.js
new file mode 100644
index 000000000..fe4b723f9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-12.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-8-12",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-12.js",
+
+description: "Array.prototype.every doesn't mutate the array on which it is called on",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ return true;
+ }
+ var arr = [1,2,3,4,5];
+ arr.every(callbackfn);
+ if(arr[0] === 1 &&
+ arr[1] === 2 &&
+ arr[2] === 3 &&
+ arr[3] === 4 &&
+ arr[4] === 5)
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-13.js
new file mode 100644
index 000000000..7548f4339
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-13.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-8-13",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-13.js",
+
+description: "Array.prototype.every doesn't visit expandos",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ return true;
+ }
+
+ var arr = [0,1,2,3,4,5,6,7,8,9];
+ arr["i"] = 10;
+ arr[true] = 11;
+
+ if(arr.every(callbackfn) === true && callCnt === 10)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-2.js
new file mode 100644
index 000000000..9a0937d02
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-2.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-8-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-2.js",
+
+description: "Array.prototype.every returns true if 'length' is 0 (subclassed Array, length overridden to null (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = null;
+
+ function cb(){}
+ var i = f.every(cb);
+
+ if (i === true) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-3.js
new file mode 100644
index 000000000..857a3f877
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-3.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-8-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-3.js",
+
+description: "Array.prototype.every returns true if 'length' is 0 (subclassed Array, length overridden to false (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = false;
+
+ function cb(){}
+ var i = f.every(cb);
+
+ if (i === true) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-4.js
new file mode 100644
index 000000000..aa897d9f8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-4.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-8-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-4.js",
+
+description: "Array.prototype.every returns true if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 0;
+
+ function cb(){}
+ var i = f.every(cb);
+
+ if (i === true) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-5.js
new file mode 100644
index 000000000..f6769930d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-5.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-8-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-5.js",
+
+description: "Array.prototype.every returns true if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = '0';
+
+ function cb(){}
+ var i = f.every(cb);
+
+ if (i === true) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-6.js
new file mode 100644
index 000000000..5282726f9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-6.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-8-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-6.js",
+
+description: "Array.prototype.every returns true if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { valueOf: function () { return 0;}};
+ f.length = o;
+
+ function cb(){}
+ var i = f.every(cb);
+
+ if (i === true) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-7.js
new file mode 100644
index 000000000..5597464a6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-7.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-8-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-7.js",
+
+description: "Array.prototype.every returns true if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { toString: function () { return '0';}};
+ f.length = o;
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ function cb(){}
+ var i = f.every(cb);
+
+ if (i === true) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-8.js
new file mode 100644
index 000000000..4472c5c6c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-8.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.16-8-8",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.16/15.4.4.16-8-8.js",
+
+description: "Array.prototype.every returns true if 'length' is 0 (subclassed Array, length overridden with []",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ function cb(){}
+ var i = f.every(cb);
+
+ if (i === true) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.every);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-1.js
new file mode 100644
index 000000000..57d8b3df0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-1.js
@@ -0,0 +1,36 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-0-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-1.js",
+
+description: "Array.prototype.some must exist as a function",
+
+test: function testcase() {
+ var f = Array.prototype.some;
+ if (typeof(f) === "function") {
+ return true;
+ }
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-2.js
new file mode 100644
index 000000000..2937afeb7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-2.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-0-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-0-2.js",
+
+description: "Array.prototype.some.length must be 1",
+
+test: function testcase() {
+ if (Array.prototype.some.length === 1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-1.js
new file mode 100644
index 000000000..b41f07b2d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-1.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-1.js",
+
+ description: "Array.prototype.some applied to undefined throws a TypeError",
+
+ test: function testcase() {
+ try {
+ Array.prototype.some.call(undefined);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-10.js
new file mode 100644
index 000000000..7e1ffe977
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-10.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-10.js",
+
+ description: "Array.prototype.some applied to the Math object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return '[object Math]' === Object.prototype.toString.call(obj);
+ }
+
+ try {
+ Math.length = 1;
+ Math[0] = 1;
+ return Array.prototype.some.call(Math, callbackfn);
+ } finally {
+ delete Math[0];
+ delete Math.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-11.js
new file mode 100644
index 000000000..1296b3630
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-11.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-11.js",
+
+ description: "Array.prototype.some applied to Date object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Date;
+ }
+
+ var obj = new Date();
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 9;
+
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-12.js
new file mode 100644
index 000000000..83b3e4814
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-12.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-12.js",
+
+ description: "Array.prototype.some applied to RegExp object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof RegExp;
+ }
+
+ var obj = new RegExp();
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 9;
+
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-13.js
new file mode 100644
index 000000000..0572ab584
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-13.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-13.js",
+
+ description: "Array.prototype.some applied to the JSON object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return '[object JSON]' === Object.prototype.toString.call(obj);
+ }
+
+ try {
+ JSON.length = 1;
+ JSON[0] = 1;
+ return Array.prototype.some.call(JSON, callbackfn);
+ } finally {
+ delete JSON.length;
+ delete JSON[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-14.js
new file mode 100644
index 000000000..4a6da3b59
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-14.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-14.js",
+
+ description: "Array.prototype.some applied to Error object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Error;
+ }
+
+ var obj = new Error();
+ obj.length = 1;
+ obj[0] = 1;
+
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-15.js
new file mode 100644
index 000000000..9a67f5dca
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-15.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-15.js",
+
+ description: "Array.prototype.some applied to the Arguments object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return '[object Arguments]' === Object.prototype.toString.call(obj);
+ }
+
+ var obj = (function () {
+ return arguments;
+ }("a", "b"));
+
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-2.js
new file mode 100644
index 000000000..e6ff4eceb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-2.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-2.js",
+
+ description: "Array.prototype.some applied to null throws a TypeError",
+
+ test: function testcase() {
+ try {
+ Array.prototype.some.call(null);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-3.js
new file mode 100644
index 000000000..470805430
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-3.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-3.js",
+
+ description: "Array.prototype.some applied to boolean primitive",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Boolean;
+ }
+
+ try {
+ Boolean.prototype[0] = 1;
+ Boolean.prototype.length = 1;
+ return Array.prototype.some.call(false, callbackfn);
+ } finally {
+ delete Boolean.prototype[0];
+ delete Boolean.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-4.js
new file mode 100644
index 000000000..6e84eba50
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-4.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-4.js",
+
+ description: "Array.prototype.some applied to Boolean object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Boolean;
+ }
+
+ var obj = new Boolean(true);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 9;
+
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-5.js
new file mode 100644
index 000000000..83f23268f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-5.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-5.js",
+
+ description: "Array.prototype.some applied to number primitive",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Number;
+ }
+
+ try {
+ Number.prototype[1] = true;
+ Number.prototype.length = 2;
+
+ return Array.prototype.some.call(5, callbackfn);
+ } finally {
+ delete Number.prototype[1];
+ delete Number.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-6.js
new file mode 100644
index 000000000..da67400a9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-6.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-6.js",
+
+ description: "Array.prototype.some applied to Number object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Number;
+ }
+
+ var obj = new Number(-128);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 9;
+
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-7.js
new file mode 100644
index 000000000..98f35371a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-7.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-7.js",
+
+ description: "Array.prototype.some applied to applied to string primitive",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof String;
+ }
+
+ return Array.prototype.some.call("hello\nw_orld\\!", callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-8.js
new file mode 100644
index 000000000..37808a20e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-8.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-8.js",
+
+ description: "Array.prototype.some applied to String object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof String;
+ }
+
+ var obj = new String("hello\nw_orld\\!");
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-9.js
new file mode 100644
index 000000000..dc1884a31
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-9.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-1-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-1-9.js",
+
+ description: "Array.prototype.some applied to Function object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Function;
+ }
+
+ var obj = function (a, b) {
+ return a + b;
+ };
+ obj[0] = 11;
+ obj[1] = 9;
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-1.js
new file mode 100644
index 000000000..8dfe038ed
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-1.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-1.js",
+
+ description: "Array.prototype.some - 'length' is own data property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = {
+ 0: 9,
+ 1: 11,
+ 2: 12,
+ length: 2
+ };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-10.js
new file mode 100644
index 000000000..d06e7ac76
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-10.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-10.js",
+
+ description: "Array.prototype.some - 'length' is an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 9;
+ child[1] = 11;
+ child[2] = 12;
+
+ return Array.prototype.some.call(child, callbackfn1) &&
+ !Array.prototype.some.call(child, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-11.js
new file mode 100644
index 000000000..6050f1fe1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-11.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-11.js",
+
+ description: "Array.prototype.some - 'length' is an own accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 12
+ };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+ },
+
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-12.js
new file mode 100644
index 000000000..ec5523d66
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-12.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-12.js",
+
+ description: "Array.prototype.some - 'length' is own accessor property without a get function that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ try {
+ Object.defineProperty(Object.prototype, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var obj = { 0: 11, 1: 12 };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+ } finally {
+ delete Object.prototype.length;
+ }
+
+ },
+
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-13.js
new file mode 100644
index 000000000..5f0ef80f5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-13.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-13.js",
+
+ description: "Array.prototype.some - 'length' is inherited accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 11;
+ child[1] = 12;
+
+ return !Array.prototype.some.call(child, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-14.js
new file mode 100644
index 000000000..e6843545e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-14.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-14.js",
+
+ description: "Array.prototype.some - 'length' property doesn't exist on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, 1: 12 };
+
+ return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-15.js
new file mode 100644
index 000000000..e0f3e32c7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-15.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-15.js",
+
+ description: "Array.prototype.some - 'length' is property of the global object",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 9;
+ fnGlobalObject()[1] = 11;
+ fnGlobalObject()[2] = 12;
+ fnGlobalObject().length = 2;
+ return Array.prototype.some.call(fnGlobalObject(), callbackfn1) &&
+ !Array.prototype.some.call(fnGlobalObject(), callbackfn2);
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-17.js
new file mode 100644
index 000000000..9ecfb0647
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-17.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-17.js",
+
+ description: "Array.prototype.some applied to the Arguments object which implements its own property get method",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var func = function (a, b) {
+ arguments[2] = 12;
+ return Array.prototype.some.call(arguments, callbackfn1) &&
+ !Array.prototype.some.call(arguments, callbackfn2);
+ };
+
+ return func(9, 11);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-18.js
new file mode 100644
index 000000000..89c02bcb5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-18.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-18.js",
+
+ description: "Array.prototype.some applied to String object which implements its own property get method",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return parseInt(val, 10) > 1;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return parseInt(val, 10) > 2;
+ }
+
+ var str = new String("12");
+ try {
+ String.prototype[2] = "3";
+ return Array.prototype.some.call(str, callbackfn1) &&
+ !Array.prototype.some.call(str, callbackfn2);
+ } finally {
+ delete String.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-19.js
new file mode 100644
index 000000000..c73adc9b3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-19.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-19.js",
+
+ description: "Array.prototype.some applied to Function object which implements its own property get method",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var fun = function (a, b) {
+ return a + b;
+ };
+ fun[0] = 9;
+ fun[1] = 11;
+ fun[2] = 12;
+
+ return Array.prototype.some.call(fun, callbackfn1) &&
+ !Array.prototype.some.call(fun, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-2.js
new file mode 100644
index 000000000..eed692348
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-2.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-2.js",
+
+ description: "Array.prototype.some - 'length' is own data property on an Array",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ try {
+ Array.prototype[2] = 12;
+
+ return [9, 11].some(callbackfn1) &&
+ ![9, 11].some(callbackfn2);
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-3.js
new file mode 100644
index 000000000..4a45dfa60
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-3.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-3.js",
+
+ description: "Array.prototype.some - 'length' is an own data property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ child[0] = 9;
+ child[1] = 11;
+ child[2] = 12;
+
+ return Array.prototype.some.call(child, callbackfn1) &&
+ !Array.prototype.some.call(child, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-4.js
new file mode 100644
index 000000000..54843e99c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-4.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-4.js",
+
+ description: "Array.prototype.some - 'length' is an own data property that overrides an inherited data property on an array",
+
+ test: function testcase() {
+ var arrProtoLen = 0;
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ try {
+ arrProtoLen = Array.prototype.length;
+ Array.prototype.length = 0;
+ Array.prototype[2] = 12;
+
+ return [9, 11].some(callbackfn1) &&
+ ![9, 11].some(callbackfn2);
+ } finally {
+ Array.prototype.length = arrProtoLen;
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-5.js
new file mode 100644
index 000000000..555f4351a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-5.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-5.js",
+
+ description: "Array.prototype.some - 'length' is an own data property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ Object.defineProperty(child, "length", {
+ value: 2,
+ configurable: true
+ });
+
+ child[0] = 9;
+ child[1] = 11;
+ child[2] = 12;
+
+ return Array.prototype.some.call(child, callbackfn1) &&
+ !Array.prototype.some.call(child, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-6.js
new file mode 100644
index 000000000..b5b6a7407
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-6.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-6.js",
+
+ description: "Array.prototype.some - 'length' is an inherited data property on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var proto = { length: 2 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 9;
+ child[1] = 11;
+ child[2] = 12;
+
+ return Array.prototype.some.call(child, callbackfn1) &&
+ !Array.prototype.some.call(child, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-7.js
new file mode 100644
index 000000000..8f35fc818
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-7.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-7.js",
+
+ description: "Array.prototype.some - 'length' is an own accessor property on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ obj[0] = 9;
+ obj[1] = 11;
+ obj[2] = 12;
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-8.js
new file mode 100644
index 000000000..3f95bf725
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-8.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-8.js",
+
+ description: "Array.prototype.some - 'length' is an own accessor property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 9;
+ child[1] = 11;
+ child[2] = 12;
+
+ return Array.prototype.some.call(child, callbackfn1) &&
+ !Array.prototype.some.call(child, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-9.js
new file mode 100644
index 000000000..744124b44
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-9.js
@@ -0,0 +1,73 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-2-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-2-9.js",
+
+ description: "Array.prototype.some - 'length' is an own accessor property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 9;
+ child[1] = 11;
+ child[2] = 12;
+
+ return Array.prototype.some.call(child, callbackfn1) &&
+ !Array.prototype.some.call(child, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-1.js
new file mode 100644
index 000000000..ee24e1f97
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-1.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-1.js",
+
+ description: "Array.prototype.some - value of 'length' is undefined",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, length: undefined };
+
+ return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-10.js
new file mode 100644
index 000000000..0c635f795
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-10.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-10.js",
+
+ description: "Array.prototype.some - value of 'length' is a number (value is NaN)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, length: NaN };
+
+ return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-11.js
new file mode 100644
index 000000000..610157fbc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-11.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-11.js",
+
+ description: "Array.prototype.some - 'length' is a string containing a positive number",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 9, 1: 11, 2: 12, length: "2" };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-12.js
new file mode 100644
index 000000000..48bc181bd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-12.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-12.js",
+
+ description: "Array.prototype.some - 'length' is a string containing a negative number",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 9, 1: 11, 2: 12, length: "-4294967294" };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-13.js
new file mode 100644
index 000000000..feafd20d6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-13.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-13.js",
+
+ description: "Array.prototype.some - 'length' is a string containing a decimal number",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 9, 1: 11, 2: 12, length: "2.5" };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2);
+ },
+
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-14.js
new file mode 100644
index 000000000..a4bf40f5e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-14.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-14.js",
+
+ description: "Array.prototype.some - 'length' is a string containing +/-Infinity",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var objOne = { 0: 11, length: "Infinity" };
+ var objTwo = { 0: 11, length: "+Infinity" };
+ var objThree = { 0: 11, length: "-Infinity" };
+
+ return !Array.prototype.some.call(objOne, callbackfn) &&
+ !Array.prototype.some.call(objTwo, callbackfn) &&
+ !Array.prototype.some.call(objThree, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-15.js
new file mode 100644
index 000000000..f683fee04
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-15.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-15.js",
+
+ description: "Array.prototype.some - 'length' is a string containing an exponential number",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 9, 1: 11, 2: 12, length: "2E0" };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-16.js
new file mode 100644
index 000000000..1a408bd0d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-16.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-16.js",
+
+ description: "Array.prototype.some - 'length' is a string containing a hex number",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 9, 1: 11, 2: 12, length: "0x0002" };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-17.js
new file mode 100644
index 000000000..541ed0567
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-17.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-17.js",
+
+ description: "Array.prototype.some - 'length' is a string containing a number with leading zeros",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 9, 1: 11, 2: 12, length: "0002.00" };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-18.js
new file mode 100644
index 000000000..b94b13654
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-18.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-18.js",
+
+ description: "Array.prototype.some - value of 'length' is a string that can't convert to a number",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, 1: 21, length: "two" };
+
+ return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-19.js
new file mode 100644
index 000000000..a559e8404
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-19.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-19.js",
+
+ description: "Array.prototype.some - value of 'length' is an Object which has an own toString method",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var toStringAccessed = false;
+ var obj = {
+ 0: 9,
+ 1: 11,
+ 2: 12,
+
+ length: {
+ toString: function () {
+ toStringAccessed = true;
+ return '2';
+ }
+ }
+ };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2) && toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-2.js
new file mode 100644
index 000000000..5d4701392
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-2.js",
+
+ description: "Array.prototype.some on an Array-like object if 'length' is 1 (length overridden to true(type conversion))",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 11, 1: 12, length: true };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-20.js
new file mode 100644
index 000000000..f4d26c62f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-20.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-20.js",
+
+ description: "Array.prototype.some - value of 'length' is an Object which has an own valueOf method",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var valueOfAccessed = false;
+
+ var obj = {
+ 0: 9,
+ 1: 11,
+ 2: 12,
+ length: {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ }
+ };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2) && valueOfAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-21.js
new file mode 100644
index 000000000..1cbfdbda4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-21.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-21.js",
+
+ description: "Array.prototype.some - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var obj = {
+ 0: 9,
+ 1: 11,
+ 2: 12,
+ length: {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ },
+ toString: function () {
+ toStringAccessed = true;
+ return '2';
+ }
+ }
+ };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2) &&
+ valueOfAccessed && toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-22.js
new file mode 100644
index 000000000..0aef79354
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-22.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-22.js",
+
+ description: "Array.prototype.some throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values",
+
+ test: function testcase() {
+
+ var callbackfnAccessed = false;
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ function callbackfn(val, idx, obj) {
+ callbackfnAccessed = true;
+ return val > 10;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 12,
+
+ length: {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ },
+ toString: function () {
+ toStringAccessed = true;
+ return {};
+ }
+ }
+ };
+
+ try {
+ Array.prototype.some.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && toStringAccessed && valueOfAccessed && !callbackfnAccessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-23.js
new file mode 100644
index 000000000..b702fcb5b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-23.js
@@ -0,0 +1,76 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-23.js",
+
+ description: "Array.prototype.some uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var valueOfAccessed = false;
+ var toStringAccessed = false;
+
+ var proto = {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ child.toString = function () {
+ toStringAccessed = true;
+ return '1';
+ };
+
+ var obj = {
+ 0: 9,
+ 1: 11,
+ 2: 12,
+ length: child
+ };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2) &&
+ valueOfAccessed && !toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-24.js
new file mode 100644
index 000000000..065dbe996
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-24.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-24.js",
+
+ description: "Array.prototype.some - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = {
+ 0: 9,
+ 10: 11,
+ 11: 12,
+ length: 11.5
+ };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-25.js
new file mode 100644
index 000000000..62c8ed44c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-25.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-25.js",
+
+ description: "Array.prototype.some - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = {
+ 0: 9,
+ 1: 11,
+ 2: 12,
+ length: -4294967294.5
+ };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-28.js
new file mode 100644
index 000000000..00d12d52f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-28.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-28.js",
+
+ description: "Array.prototype.some - value of 'length' is boundary value (2^32)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = {
+ 0: 12,
+ length: 4294967296
+ };
+
+ return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-29.js
new file mode 100644
index 000000000..317f5bfac
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-29.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-29.js",
+
+ description: "Array.prototype.some - value of 'length' is boundary value (2^32 + 1)",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 12,
+ length: 4294967297
+ };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-3.js
new file mode 100644
index 000000000..4cfc0a5af
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-3.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-3.js",
+
+ description: "Array.prototype.some - value of 'length' is a number (value is 0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, length: 0 };
+
+ return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-4.js
new file mode 100644
index 000000000..b0f95eea4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-4.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-4.js",
+
+ description: "Array.prototype.some - value of 'length' is a number (value is +0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, length: +0 };
+
+ return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-5.js
new file mode 100644
index 000000000..0f52c5fec
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-5.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-5.js",
+
+ description: "Array.prototype.some - value of 'length' is a number (value is -0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, length: -0 };
+
+ return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-6.js
new file mode 100644
index 000000000..71a7505ea
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-6.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-6.js",
+
+ description: "Array.prototype.some - value of 'length' is a number (value is positive)",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 9, 1: 11, 2: 12, length: 2 };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2);
+ },
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-7.js
new file mode 100644
index 000000000..53926a681
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-7.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-7.js",
+
+ description: "Array.prototype.some - value of 'length' is a number (value is negative)",
+
+ test: function testcase() {
+ function callbackfn1(val, idx, obj) {
+ return val > 10;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ return val > 11;
+ }
+
+ var obj = { 0: 9, 1: 11, 2: 12, length: -4294967294 };
+
+ return Array.prototype.some.call(obj, callbackfn1) &&
+ !Array.prototype.some.call(obj, callbackfn2);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-8.js
new file mode 100644
index 000000000..1d8871571
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-8.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-8.js",
+
+ description: "Array.prototype.some - value of 'length' is a number (value is Infinity)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, length: Infinity };
+
+ return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-9.js
new file mode 100644
index 000000000..156c92550
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-9.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-3-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-3-9.js",
+
+ description: "Array.prototype.some - value of 'length' is a number (value is -Infinity)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, length: -Infinity };
+
+ return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-1.js
new file mode 100644
index 000000000..48e014d68
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-1.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-4-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-1.js",
+
+description: "Array.prototype.some throws TypeError if callbackfn is undefined",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.some();
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-10.js
new file mode 100644
index 000000000..aabd43907
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-10.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-4-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-10.js",
+
+ description: "Array.prototype.some - the exception is not thrown if exception was thrown by step 2",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.some.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-11.js
new file mode 100644
index 000000000..7bc53d22a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-11.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-4-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-11.js",
+
+ description: "Array.prototype.some - the exception is not thrown if exception was thrown by step 3",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.some.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-12.js
new file mode 100644
index 000000000..13f942c68
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-12.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-4-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-12.js",
+
+ description: "Array.prototype.some - 'callbackfn' is a function",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ return [9, 11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-15.js
new file mode 100644
index 000000000..d4acd8c9e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-15.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-4-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-15.js",
+
+ description: "Array.prototype.some - calling with no callbackfn is the same as passing undefined for callbackfn",
+
+ test: function testcase() {
+ var obj = { };
+ var lengthAccessed = false;
+ var loopAccessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ lengthAccessed = true;
+ return 20;
+ },
+ configurable: true
+ });
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ loopAccessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.some.call(obj);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && lengthAccessed && !loopAccessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-2.js
new file mode 100644
index 000000000..3d99f2420
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-2.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-4-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-2.js",
+
+description: "Array.prototype.some throws ReferenceError if callbackfn is unreferenced",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.some(foo);
+ }
+ catch(e) {
+ if(e instanceof ReferenceError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-3.js
new file mode 100644
index 000000000..a0da988b2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-3.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-4-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-3.js",
+
+description: "Array.prototype.some throws TypeError if callbackfn is null",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.some(null);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-4.js
new file mode 100644
index 000000000..c6cf05f68
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-4.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-4-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-4.js",
+
+description: "Array.prototype.some throws TypeError if callbackfn is boolean",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.some(true);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-5.js
new file mode 100644
index 000000000..9f47a5879
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-5.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-4-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-5.js",
+
+description: "Array.prototype.some throws TypeError if callbackfn is number",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.some(5);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-6.js
new file mode 100644
index 000000000..a99982d2b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-6.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-4-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-6.js",
+
+description: "Array.prototype.some throws TypeError if callbackfn is string",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.some("abc");
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-7.js
new file mode 100644
index 000000000..fa1e56744
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-7.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-4-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-7.js",
+
+description: "Array.prototype.some throws TypeError if callbackfn is Object without a Call internal method",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.some(new Object());
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-8.js
new file mode 100644
index 000000000..d12af21f4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-8.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-4-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-8.js",
+
+ description: "Array.prototype.some - side effects produced by step 2 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.some.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-9.js
new file mode 100644
index 000000000..5c400c2f7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-9.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-4-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-4-9.js",
+
+ description: "Array.prototype.some - side effects produced by step 3 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "2";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.some.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1-s.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1-s.js
new file mode 100644
index 000000000..14d84826b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1-s.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2010 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-5-1-s",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1-s.js",
+
+description: "Array.prototype.some - thisArg not passed to strict callbackfn",
+
+test: function testcase() {
+ var innerThisCorrect = false;
+
+ function callbackfn(val, idx, obj) {
+ "use strict";
+ innerThisCorrect = this===undefined;
+ return true;
+ }
+
+ [1].some(callbackfn);
+ return innerThisCorrect;
+ },
+
+strict:1,
+
+precondition: function prereq() {
+ return fnSupportsStrict() && fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1.js
new file mode 100644
index 000000000..e54e3ef44
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.17-5-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-1.js",
+
+ description: "Array.prototype.some - thisArg is passed",
+
+ test: function testcase() {
+ this._15_4_4_17_5_1 = false;
+ var _15_4_4_17_5_1 = true;
+
+ function callbackfn(val, idx, obj) {
+ return this._15_4_4_17_5_1;
+ }
+ var arr = [1];
+ return !arr.some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-10.js
new file mode 100644
index 000000000..f3536b355
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-10.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-10.js",
+
+ description: "Array.prototype.some - Array Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objArray = [];
+
+ function callbackfn(val, idx, obj) {
+ return this === objArray;
+ }
+
+ return [11].some(callbackfn, objArray);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-11.js
new file mode 100644
index 000000000..733d6eb52
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-11.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-11.js",
+
+ description: "Array.prototype.some - String object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objString = new String();
+
+ function callbackfn(val, idx, obj) {
+ return this === objString;
+ }
+
+ return [11].some(callbackfn, objString);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-12.js
new file mode 100644
index 000000000..4206929ff
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-12.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-12.js",
+
+ description: "Array.prototype.some - Boolean object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objBoolean = new Boolean();
+
+ function callbackfn(val, idx, obj) {
+ return this === objBoolean;
+ }
+
+ return [11].some(callbackfn, objBoolean);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-13.js
new file mode 100644
index 000000000..54f72a4a6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-13.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-13.js",
+
+ description: "Array.prototype.some - Number object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objNumber = new Number();
+
+ function callbackfn(val, idx, obj) {
+ return this === objNumber;
+ }
+
+ return [11].some(callbackfn, objNumber);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-14.js
new file mode 100644
index 000000000..670d1f922
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-14.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-14.js",
+
+ description: "Array.prototype.some - the Math object can be used as thisArg",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this === Math;
+ }
+
+ return [11].some(callbackfn, Math);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-15.js
new file mode 100644
index 000000000..67eff1696
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-15.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-15.js",
+
+ description: "Array.prototype.some - Date object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objDate = new Date();
+
+ function callbackfn(val, idx, obj) {
+ return this === objDate;
+ }
+
+ return [11].some(callbackfn, objDate);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-16.js
new file mode 100644
index 000000000..8ae4f6a1b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-16.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-16.js",
+
+ description: "Array.prototype.some - RegExp object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objRegExp = new RegExp();
+
+ function callbackfn(val, idx, obj) {
+ return this === objRegExp;
+ }
+
+ return [11].some(callbackfn, objRegExp);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-17.js
new file mode 100644
index 000000000..77531d7f1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-17.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-17.js",
+
+ description: "Array.prototype.some - the JSON object can be used as thisArg",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this === JSON;
+ }
+
+ return [11].some(callbackfn, JSON);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-18.js
new file mode 100644
index 000000000..958165fef
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-18.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-18.js",
+
+ description: "Array.prototype.some - Error object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objError = new RangeError();
+
+ function callbackfn(val, idx, obj) {
+ return this === objError;
+ }
+
+ return [11].some(callbackfn, objError);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-19.js
new file mode 100644
index 000000000..62655f2da
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-19.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-19.js",
+
+ description: "Array.prototype.some - the Arguments object can be used as thisArg",
+
+ test: function testcase() {
+
+ var arg;
+
+ function callbackfn(val, idx, obj) {
+ return this === arg;
+ }
+
+ (function fun() {
+ arg = arguments;
+ }(1, 2, 3));
+
+ return [11].some(callbackfn, arg);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-2.js
new file mode 100644
index 000000000..6f42343a3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-2.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-5-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-2.js",
+
+description: "Array.prototype.some - thisArg is Object",
+
+test: function testcase() {
+ var res = false;
+ var o = new Object();
+ o.res = true;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ var arr = [1];
+ if(arr.some(callbackfn, o) === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-21.js
new file mode 100644
index 000000000..3b1598c14
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-21.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-21.js",
+
+ description: "Array.prototype.some - the global object can be used as thisArg",
+
+ test: function testcase() {
+
+
+ function callbackfn(val, idx, obj) {
+ return this === fnGlobalObject();
+ }
+
+ return [11].some(callbackfn, fnGlobalObject());
+ },
+
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-22.js
new file mode 100644
index 000000000..9ee4293b6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-22.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-22.js",
+
+ description: "Array.prototype.some - boolean primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.valueOf() === false;
+ }
+
+ return [11].some(callbackfn, false);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-23.js
new file mode 100644
index 000000000..723362ce5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-23.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-23.js",
+
+ description: "Array.prototype.some - number primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.valueOf() === 101;
+ }
+
+ return [11].some(callbackfn, 101);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-24.js
new file mode 100644
index 000000000..09a7d76fe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-24.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-24.js",
+
+ description: "Array.prototype.some - string primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.valueOf() === "abc";
+ }
+
+ return [11].some(callbackfn, "abc");
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-25.js
new file mode 100644
index 000000000..de628d1a7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-25.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.17-5-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-25.js",
+
+ description: "Array.prototype.some - thisArg not passed",
+
+ test: function testcase() {
+ function innerObj() {
+ this._15_4_4_17_5_25 = true;
+ var _15_4_4_17_5_25 = false;
+
+ function callbackfn(val, idx, obj) {
+ return this._15_4_4_17_5_25;
+ }
+ var arr = [1];
+ this.retVal = !arr.some(callbackfn);
+ }
+ return new innerObj().retVal;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-3.js
new file mode 100644
index 000000000..ea7f6922f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-5-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-3.js",
+
+description: "Array.prototype.some - thisArg is Array",
+
+test: function testcase() {
+ var res = false;
+ var a = new Array();
+ a.res = true;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ var arr = [1];
+
+ if(arr.some(callbackfn, a) === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-4.js
new file mode 100644
index 000000000..52e8b2da5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-4.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-5-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-4.js",
+
+description: "Array.prototype.some - thisArg is object from object template(prototype)",
+
+test: function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ foo.prototype.res = true;
+ var f = new foo();
+ var arr = [1];
+
+ if(arr.some(callbackfn,f) === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-5.js
new file mode 100644
index 000000000..fa48855ca
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-5.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-5-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-5.js",
+
+description: "Array.prototype.some - thisArg is object from object template",
+
+test: function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ var f = new foo();
+ f.res = true;
+ var arr = [1];
+
+ if(arr.some(callbackfn,f) === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-6.js
new file mode 100644
index 000000000..f8829a767
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-6.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-5-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-6.js",
+
+description: "Array.prototype.some - thisArg is function",
+
+test: function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ foo.res = true;
+ var arr = [1];
+
+ if(arr.some(callbackfn,foo) === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-7.js
new file mode 100644
index 000000000..d26a44b6c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-7.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-7.js",
+
+ description: "Array.prototype.some - built-in functions can be used as thisArg",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this === eval;
+ }
+
+ return [11].some(callbackfn, eval);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-9.js
new file mode 100644
index 000000000..f581fd5b3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-9.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-5-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-5-9.js",
+
+ description: "Array.prototype.some - Function Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objFunction = function () { };
+
+ function callbackfn(val, idx, obj) {
+ return this === objFunction;
+ }
+
+ return [11].some(callbackfn, objFunction);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-1.js
new file mode 100644
index 000000000..dd39c2b7f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-1.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-7-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-1.js",
+
+description: "Array.prototype.some considers new elements added to array after it is called",
+
+test: function testcase() {
+ var calledForThree = false;
+
+ function callbackfn(val, idx, obj)
+ {
+ arr[2] = 3;
+ if(val !== 3)
+ calledForThree = true;
+
+ return false;
+ }
+
+ var arr = [1,2,,4,5];
+
+ var val = arr.some(callbackfn);
+ return calledForThree;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-2.js
new file mode 100644
index 000000000..56b76108f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-7-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-2.js",
+
+description: "Array.prototype.some considers new value of elements in array after it is called",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ arr[4] = 6;
+ if(val < 6)
+ return false;
+ else
+ return true;
+ }
+
+ var arr = [1,2,3,4,5];
+
+ if(arr.some(callbackfn) === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-3.js
new file mode 100644
index 000000000..0755015b4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-3.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-7-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-3.js",
+
+description: "Array.prototype.some doesn't visit deleted elements in array after it is called",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ delete arr[2];
+ if(val !== 3)
+ return false;
+ else
+ return true;
+ }
+
+ var arr = [1,2,3,4,5];
+
+ if(arr.some(callbackfn) === false)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-4.js
new file mode 100644
index 000000000..45abcc8b0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-4.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-7-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-4.js",
+
+description: "Array.prototype.some doesn't visit deleted elements when Array.length is decreased",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ arr.length = 3;
+ if(val < 4)
+ return false;
+ else
+ return true;
+ }
+
+ var arr = [1,2,3,4,6];
+
+ if(arr.some(callbackfn) === false)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-5.js
new file mode 100644
index 000000000..1ea116ee2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-5.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-7-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-5.js",
+
+description: "Array.prototype.some doesn't consider newly added elements in sparse array",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ arr[1000] = 5;
+ if(val < 5)
+ return false;
+ else
+ return true;
+ }
+
+ var arr = new Array(10);
+ arr[1] = 1;
+ arr[2] = 2;
+
+ if(arr.some(callbackfn) === false)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-6.js
new file mode 100644
index 000000000..65a9571b5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-6.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-7-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-6.js",
+
+description: "Array.prototype.some visits deleted element in array after the call when same index is also present in prototype",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ delete arr[4];
+ if(val < 5)
+ return false;
+ else
+ return true;
+ }
+
+
+ Array.prototype[4] = 5;
+ var arr = [1,2,3,4,5];
+
+ var res = arr.some(callbackfn) ;
+ delete Array.prototype[4];
+ if(res === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-8.js
new file mode 100644
index 000000000..2832eef4c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-8.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-8.js",
+
+ description: "Array.prototype.some - no observable effects occur if length is 0",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, 1: 12, length: 0 };
+
+ return !Array.prototype.some.call(obj, callbackfn) && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-9.js
new file mode 100644
index 000000000..71e95b304
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-9.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-9.js",
+
+ description: "Array.prototype.some - modifications to length don't change number of iterations",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ return val > 10;
+ }
+
+ var obj = { 0: 9, 2: 12, length: 3 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ obj.length = 2;
+ return 8;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.some.call(obj, callbackfn) && called === 3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-1.js
new file mode 100644
index 000000000..fbb2c7545
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-1.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-7-b-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-1.js",
+
+description: "Array.prototype.some - callbackfn not called for indexes never been assigned values",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ return false;
+ }
+
+ var arr = new Array(10);
+ arr[1] = undefined;
+ arr.some(callbackfn);
+ if(callCnt === 1)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-10.js
new file mode 100644
index 000000000..814b4593c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-10.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-10.js",
+
+ description: "Array.prototype.some - deleting property of prototype causes prototype index property not to be visited on an Array-like Object",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return idx === 1;
+ }
+ var arr = { 2: 2, length: 20 };
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete Object.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ return !Array.prototype.some.call(arr, callbackfn) && accessed;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-11.js
new file mode 100644
index 000000000..846d3e338
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-11.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-11.js",
+
+ description: "Array.prototype.some - deleting property of prototype causes prototype index property not to be visited on an Array",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return idx === 1;
+ }
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete Array.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ return !arr.some(callbackfn) && accessed;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-12.js
new file mode 100644
index 000000000..bacb56335
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-12.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-12.js",
+
+ description: "Array.prototype.some - deleting own property with prototype property causes prototype index property to be visited on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ var arr = { 0: 0, 1: 111, 2: 2, length: 10 };
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ return Array.prototype.some.call(arr, callbackfn);
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-13.js
new file mode 100644
index 000000000..89dd9d8b9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-13.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-13.js",
+
+ description: "Array.prototype.some - deleting own property with prototype property causes prototype index property to be visited on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ var arr = [0, 111, 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ return arr.some(callbackfn);
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-14.js
new file mode 100644
index 000000000..1a921e98c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-14.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-14.js",
+
+ description: "Array.prototype.some - decreasing length of array causes index property not to be visited",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return idx === 3;
+ }
+ var arr = [0, 1, 2, "last"];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr.length = 3;
+ return 0;
+ },
+ configurable: true
+ });
+
+ return !arr.some(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-15.js
new file mode 100644
index 000000000..87271ffdd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-15.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-15.js",
+
+ description: "Array.prototype.some - decreasing length of array with prototype property causes prototype index property to be visited",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 2 && val === "prototype") {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ var arr = [0, 1, 2];
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "prototype";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ return arr.some(callbackfn);
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-16.js
new file mode 100644
index 000000000..f051c1585
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-16.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-16.js",
+
+ description: "Array.prototype.some - decreasing length of array does not delete non-configurable properties",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 2 && val === "unconfigurable") {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ var arr = [0, 1, 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "unconfigurable";
+ },
+ configurable: false
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ return arr.some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-2.js
new file mode 100644
index 000000000..1947309d9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-2.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-2.js",
+
+ description: "Array.prototype.some - added properties in step 2 are visible here",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 2 && val === "length") {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ var arr = { };
+
+ Object.defineProperty(arr, "length", {
+ get: function () {
+ arr[2] = "length";
+ return 3;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.some.call(arr, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-3.js
new file mode 100644
index 000000000..c5eccfeed
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-3.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-3.js",
+
+ description: "Array.prototype.some - deleted properties in step 2 are visible here",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return idx === 2;
+ }
+ var arr = { 2: 6.99, 8: 19};
+
+ Object.defineProperty(arr, "length", {
+ get: function () {
+ delete arr[2];
+ return 10;
+ },
+ configurable: true
+ });
+
+ return !Array.prototype.some.call(arr, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-4.js
new file mode 100644
index 000000000..5ade5305e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-4.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-4.js",
+
+ description: "Array.prototype.some - properties added into own object after current position are visited on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ var arr = { length: 2 };
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.some.call(arr, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-5.js
new file mode 100644
index 000000000..af53369ba
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-5.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-5.js",
+
+ description: "Array.prototype.some - properties added into own object after current position are visited on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ return arr.some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-6.js
new file mode 100644
index 000000000..ebb4359f8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-6.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-6.js",
+
+ description: "Array.prototype.some - properties can be added to prototype after current position are visited on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 6.99) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ var arr = { length: 2 };
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ return Array.prototype.some.call(arr, callbackfn);
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-7.js
new file mode 100644
index 000000000..89cc96b40
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-7.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-7.js",
+
+ description: "Array.prototype.some - properties can be added to prototype after current position are visited on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 6.99) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ return arr.some(callbackfn);
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-8.js
new file mode 100644
index 000000000..4f29741e0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-8.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-8.js",
+
+ description: "Array.prototype.some - deleting own property causes index property not to be visited on an Array-like object",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return idx === 1;
+ }
+ var arr = { length: 2 };
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ return !Array.prototype.some.call(arr, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-9.js
new file mode 100644
index 000000000..b5c8bda9a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-9.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-b-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-b-9.js",
+
+ description: "Array.prototype.some - deleting own property causes index property not to be visited on an Array",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return idx === 1;
+ }
+ var arr = [1, 2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "6.99";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ return !arr.some(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-1.js
new file mode 100644
index 000000000..bb29c4c3a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-1.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-1.js",
+
+ description: "Array.prototype.some - element to be retrieved is own data property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = {};
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 5) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var obj = { 5: kValue, length: 100 };
+
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-10.js
new file mode 100644
index 000000000..f0724fe94
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-10.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-10.js",
+
+ description: "Array.prototype.some - element to be retrieved is own accessor property on an Array",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 10) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "10", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ return arr.some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-11.js
new file mode 100644
index 000000000..3f9e99784
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-11.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-11.js",
+
+ description: "Array.prototype.some - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var proto = { 1: 6 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ Object.defineProperty(child, "1", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.some.call(child, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-12.js
new file mode 100644
index 000000000..15a40f0f2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-12.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-12.js",
+
+ description: " Array.prototype.some - element to be retrieved is own accessor property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var arr = [];
+ try {
+ Array.prototype[1] = 100;
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ return arr.some(callbackfn);
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-13.js
new file mode 100644
index 000000000..b9b5bc47d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-13.js
@@ -0,0 +1,72 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-13.js",
+
+ description: "Array.prototype.some - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 5;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ Object.defineProperty(child, "1", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+
+ return Array.prototype.some.call(child, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-14.js
new file mode 100644
index 000000000..3743124e4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-14.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-14.js",
+
+ description: " Array.prototype.some - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var arr = [];
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 10;
+ },
+ configurable: true
+ });
+
+ return arr.some(callbackfn);
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-15.js
new file mode 100644
index 000000000..6a4f30d87
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-15.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-15.js",
+
+ description: "Array.prototype.some - element to be retrieved is inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 20;
+
+ return Array.prototype.some.call(child, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-16.js
new file mode 100644
index 000000000..9e37832b5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-16.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-16.js",
+
+ description: "Array.prototype.some - element to be retrieved is inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ return [, , ].some(callbackfn);
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-17.js
new file mode 100644
index 000000000..7d96f39a4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-17.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-17.js",
+
+ description: "Array.prototype.some - element to be retrieved is own accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return typeof val === "undefined";
+ }
+ return false;
+ }
+
+ var obj = { length: 2 };
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-18.js
new file mode 100644
index 000000000..1a8cb53c6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-18.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-18.js",
+
+ description: "Array.prototype.some - element to be retrieved is own accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return typeof val === "undefined";
+ }
+ return false;
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ return arr.some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-19.js
new file mode 100644
index 000000000..91c34b8e1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-19.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-19.js",
+
+ description: "Array.prototype.some - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return typeof val === "undefined";
+ }
+ return false;
+ }
+
+ var obj = { length: 2 };
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+ try {
+ Object.prototype[1] = 10;
+ return Array.prototype.some.call(obj, callbackfn);
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-2.js
new file mode 100644
index 000000000..ba688fc53
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-2.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-2.js",
+
+ description: "Array.prototype.some - element to be retrieved is own data property on an Array",
+
+ test: function testcase() {
+
+ var kValue = {};
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return kValue === val;
+ }
+ return false;
+ }
+
+ return [kValue].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-20.js
new file mode 100644
index 000000000..6963b8a7a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-20.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-20.js",
+
+ description: "Array.prototype.some - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return typeof val === "undefined";
+ }
+ return false;
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[0] = 100;
+ return arr.some(callbackfn);
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-21.js
new file mode 100644
index 000000000..71909b39e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-21.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-21.js",
+
+ description: "Array.prototype.some - element to be retrieved is inherited accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return typeof val === "undefined";
+ }
+ return false;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+
+ return Array.prototype.some.call(child, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-22.js
new file mode 100644
index 000000000..e482ebeb6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-22.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-22.js",
+
+ description: "Array.prototype.some - element to be retrieved is inherited accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return typeof val === "undefined";
+ }
+ return false;
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ return [, ].some(callbackfn);
+ } finally {
+ delete Array.prototype[0];
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-23.js
new file mode 100644
index 000000000..0a380cb30
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-23.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-23.js",
+
+ description: "Array.prototype.some - This object is an global object which contains index property",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 11;
+ }
+ return false;
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 11;
+ fnGlobalObject().length = 1;
+ return Array.prototype.some.call(fnGlobalObject(), callbackfn);
+ } finally {
+ delete fnGlobalObject()[0];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-25.js
new file mode 100644
index 000000000..db31c7a0c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-25.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-25.js",
+
+ description: "Array.prototype.some - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 11;
+ }
+ return false;
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.some.call(arguments, callbackfn);
+ };
+
+ return func(11);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-26.js
new file mode 100644
index 000000000..cb51b3ba2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-26.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-26.js",
+
+ description: "Array.prototype.some - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)",
+
+ test: function testcase() {
+
+ var firstResult = false;
+ var secondResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ firstResult = (val === 11);
+ return false;
+ } else if (idx === 1) {
+ secondResult = (val === 9);
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.some.call(arguments, callbackfn);
+ };
+
+ return !func(11, 9) && firstResult && secondResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-27.js
new file mode 100644
index 000000000..d63806921
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-27.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-27.js",
+
+ description: "Array.prototype.some - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)",
+
+ test: function testcase() {
+
+ var firstResult = false;
+ var secondResult = false;
+ var thirdResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ firstResult = (val === 11);
+ return false;
+ } else if (idx === 1) {
+ secondResult = (val === 12);
+ return false;
+ } else if (idx === 2) {
+ thirdResult = (val === 9);
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.some.call(arguments, callbackfn);
+ };
+
+ return !func(11, 12, 9) && firstResult && secondResult && thirdResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-28.js
new file mode 100644
index 000000000..df4a2144c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-28.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-28.js",
+
+ description: "Array.prototype.some - element changed by getter on previous iterations is observed on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return val === 12;
+ }
+ return false;
+ }
+
+ var arr = [];
+ var helpVerifyVar = 11;
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return helpVerifyVar;
+ },
+ set: function (args) {
+ helpVerifyVar = args;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr[1] = 12;
+ return 9;
+ },
+ configurable: true
+ });
+
+ return arr.some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-29.js
new file mode 100644
index 000000000..91992f50e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-29.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-29.js",
+
+ description: "Array.prototype.some - element changed by getter on previous iterations on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return val === 12;
+ }
+ return false;
+ }
+
+ var obj = { length: 2 };
+ var helpVerifyVar = 11;
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return helpVerifyVar;
+ },
+ set: function (args) {
+ helpVerifyVar = args;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ obj[1] = 12;
+ return 11;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-3.js
new file mode 100644
index 000000000..d72463568
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-3.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-3.js",
+
+ description: "Array.prototype.some - element to be retrieved is own data property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 5) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var proto = { 5: 100 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[5] = kValue;
+ child.length = 10;
+
+ return Array.prototype.some.call(child, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-30.js
new file mode 100644
index 000000000..2fe49428a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-30.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-30.js",
+
+ description: "Array.prototype.some - unhandled exceptions happened in getter terminate iteration on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ if (idx > 1) {
+ accessed = true;
+ }
+ return true;
+ }
+
+ var obj = { length: 20 };
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.some.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return ex instanceof RangeError && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-31.js
new file mode 100644
index 000000000..70cad27a5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-31.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-31.js",
+
+ description: "Array.prototype.some - unhandled exceptions happened in getter terminate iteration on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ if (idx > 0) {
+ accessed = true;
+ }
+ return true;
+ }
+
+ var arr = [];
+ arr[10] = 100;
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ arr.some(callbackfn);
+ return false;
+ } catch (ex) {
+ return ex instanceof RangeError && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-4.js
new file mode 100644
index 000000000..2be04269a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-4.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-4.js",
+
+ description: "Array.prototype.some - element to be retrieved is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ try {
+ Array.prototype[0] = 11;
+
+ return [kValue].some(callbackfn);
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-5.js
new file mode 100644
index 000000000..ac750aa72
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-5.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-5.js",
+
+ description: "Array.prototype.some - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = 1000;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return 5;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ Object.defineProperty(child, "0", {
+ value: kValue,
+ configurable: true
+ });
+
+ return Array.prototype.some.call(child, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-6.js
new file mode 100644
index 000000000..884502517
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-6.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-6.js",
+
+ description: "Array.prototype.some - element to be retrieved is own data property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var kValue = 1000;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 9;
+ },
+ configurable: true
+ });
+ return [kValue].some(callbackfn);
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-7.js
new file mode 100644
index 000000000..40e8645d8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-7.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-7.js",
+
+ description: "Array.prototype.some - element to be retrieved is inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = 'abc';
+
+ function callbackfn(val, idx, obj) {
+ if (5 === idx) {
+ return kValue === val;
+ }
+ return false;
+ }
+
+ var proto = { 5: kValue };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ return Array.prototype.some.call(child, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-8.js
new file mode 100644
index 000000000..3996bb39c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-8.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-8.js",
+
+ description: "Array.prototype.some - element to be retrieved is inherited data property on an Array",
+
+ test: function testcase() {
+
+ var kValue = {};
+
+ function callbackfn(val, idx, obj) {
+ if (0 === idx) {
+ return kValue === val;
+ }
+ return false;
+ }
+
+ try {
+ Array.prototype[0] = kValue;
+
+ return [, ].some(callbackfn);
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && ![, 1].hasOwnProperty(0);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-9.js
new file mode 100644
index 000000000..9366f910e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-9.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-i-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-i-9.js",
+
+ description: "Array.prototype.some - element to be retrieved is own accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 10) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var obj = { length: 20 };
+
+ Object.defineProperty(obj, "10", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-1.js
new file mode 100644
index 000000000..65957a1b3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-1.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-7-c-ii-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-1.js",
+
+description: "Array.prototype.some - callbackfn called with correct parameters",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ if(obj[idx] === val)
+ return false;
+ else
+ return true;
+ }
+
+ var arr = [0,1,2,3,4,5,6,7,8,9];
+
+ if(arr.some(callbackfn) === false)
+ return true;
+
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-10.js
new file mode 100644
index 000000000..843aaede7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-10.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-10.js",
+
+ description: "Array.prototype.some - callbackfn is called with 1 formal parameter",
+
+ test: function testcase() {
+
+ function callbackfn(val) {
+ return val > 10;
+ }
+
+ return [11, 12].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-11.js
new file mode 100644
index 000000000..d82adc287
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-11.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-11.js",
+
+ description: "Array.prototype.some - callbackfn is called with 2 formal parameter",
+
+ test: function testcase() {
+ function callbackfn(val, idx) {
+ return val > 10 && arguments[2][idx] === val;
+ }
+
+ return [9, 12].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-12.js
new file mode 100644
index 000000000..ad76e8d91
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-12.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-12.js",
+
+ description: "Array.prototype.some - callbackfn is called with 3 formal parameter",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10 && obj[idx] === val;
+ }
+
+ return [9, 12].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-13.js
new file mode 100644
index 000000000..1e8d7cc84
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-13.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-13.js",
+
+ description: "Array.prototype.some - callbackfn that uses arguments object to get parameter value",
+
+ test: function testcase() {
+
+ function callbackfn() {
+ return arguments[2][arguments[1]] === arguments[0];
+ }
+
+ return [9, 12].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-16.js
new file mode 100644
index 000000000..f002f413d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-16.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-16.js",
+
+ description: "Array.prototype.some - 'this' of 'callback' is a Boolean object when 'T' is not an object ('T' is a boolean primitive)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.valueOf() === false;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.some.call(obj, callbackfn, false);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-17.js
new file mode 100644
index 000000000..83c4a40a5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-17.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-17.js",
+
+ description: "Array.prototype.some - 'this' of 'callbackfn' is a Number object when T is not an object (T is a number primitive)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.valueOf() === 5;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.some.call(obj, callbackfn, 5);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-18.js
new file mode 100644
index 000000000..53e834e70
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-18.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-18.js",
+
+ description: "Array.prototype.some - 'this' of 'callbackfn' is an String object when T is not an object (T is a string primitive)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.valueOf() === "hello!";
+ }
+
+ var obj = { 0: 11, 1: 9, length: 2 };
+
+ return Array.prototype.some.call(obj, callbackfn, "hello!");
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-19.js
new file mode 100644
index 000000000..a292c6912
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-19.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-19.js",
+
+ description: "Array.prototype.some - non-indexed properties are not called",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ return val === 11;
+ }
+
+ var obj = { 0: 9, 10: 8, non_index_property: 11, length: 20 };
+
+ return !Array.prototype.some.call(obj, callbackfn) && (2 === called);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-2.js
new file mode 100644
index 000000000..be743fa19
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-2.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-7-c-ii-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-2.js",
+
+description: "Array.prototype.some - callbackfn takes 3 arguments",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ if(arguments.length === 3) //verify if callbackfn was called with 3 parameters
+ return false;
+ else
+ return true;
+ }
+
+ var arr = [0,1,true,null,new Object(),"five"];
+ arr[999999] = -6.6;
+
+ if(arr.some(callbackfn) === false)
+ return true;
+
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-20.js
new file mode 100644
index 000000000..3cb6de9d3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-20.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-20.js",
+
+ description: "Array.prototype.some - callbackfn called with correct parameters (thisArg is correct)",
+
+ test: function testcase() {
+
+ var thisArg = { threshold: 10 };
+
+ function callbackfn(val, idx, obj) {
+ return this === thisArg;
+ }
+
+ var obj = { 0: 11, length: 2 };
+
+ return Array.prototype.some.call(obj, callbackfn, thisArg);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-21.js
new file mode 100644
index 000000000..6cee3cca2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-21.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-21.js",
+
+ description: "Array.prototype.some - callbackfn called with correct parameters (kValue is correct)",
+
+ test: function testcase() {
+
+ var firstIndex = false;
+ var secondIndex = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ firstIndex = (val === 11);
+ return false;
+ }
+ if (idx === 1) {
+ secondIndex = (val === 12);
+ return false;
+ }
+ }
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ return !Array.prototype.some.call(obj, callbackfn) && firstIndex && secondIndex;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-22.js
new file mode 100644
index 000000000..0f9af3727
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-22.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-22.js",
+
+ description: "Array.prototype.some - callbackfn called with correct parameters (the index k is correct)",
+
+ test: function testcase() {
+
+ var firstIndex = false;
+ var secondIndex = false;
+
+ function callbackfn(val, idx, obj) {
+ if (val === 11) {
+ firstIndex = (idx === 0);
+ return false;
+ }
+ if (val === 12) {
+ secondIndex = (idx === 1);
+ return false;
+ }
+ }
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ return !Array.prototype.some.call(obj, callbackfn) && firstIndex && secondIndex;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-23.js
new file mode 100644
index 000000000..4bf3b3cfa
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-23.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-23.js",
+
+ description: "Array.prototype.some - callbackfn called with correct parameters (this object O is correct)",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ function callbackfn(val, idx, o) {
+ return obj === o;
+ }
+
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-3.js
new file mode 100644
index 000000000..c49b819de
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-3.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-7-c-ii-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-3.js",
+
+description: "Array.prototype.some immediately returns true if callbackfn returns true",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ if(idx > 5)
+ return true;
+ else
+ return false;
+ }
+
+ var arr = [0,1,2,3,4,5,6,7,8,9];
+
+ if(arr.some(callbackfn) === true && callCnt === 7)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-4.js
new file mode 100644
index 000000000..115947549
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-4.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-4.js",
+
+ description: "Array.prototype.some - k values are passed in ascending numeric order",
+
+ test: function testcase() {
+
+ var arr = [0, 1, 2, 3, 4, 5];
+ var lastIdx = 0;
+ var called = 0;
+
+ function callbackfn(val, idx, o) {
+ called++;
+ if (lastIdx !== idx) {
+ return true;
+ } else {
+ lastIdx++;
+ return false;
+ }
+ }
+
+ return !arr.some(callbackfn) && arr.length === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-5.js
new file mode 100644
index 000000000..eaa7a8e4d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-5.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-5.js",
+
+ description: "Array.prototype.some - k values are accessed during each iteration and not prior to starting the loop",
+
+ test: function testcase() {
+
+ var kIndex = [];
+
+ //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time.
+ function callbackfn(val, idx, obj) {
+ //Each position should be visited one time, which means k is accessed one time during iterations.
+ if (typeof kIndex[idx] === "undefined") {
+ //when current position is visited, its previous index should has been visited.
+ if (idx !== 0 && typeof kIndex[idx - 1] === "undefined") {
+ return true;
+ }
+ kIndex[idx] = 1;
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ return ![11, 12, 13, 14].some(callbackfn, undefined);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-6.js
new file mode 100644
index 000000000..b4ae5325f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-6.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-6.js",
+
+ description: "Array.prototype.some - arguments to callbackfn are self consistent",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, length: 1 };
+ var thisArg = {};
+
+ function callbackfn() {
+ return this === thisArg && arguments[0] === 11 && arguments[1] === 0 && arguments[2] === obj;
+ }
+
+ return Array.prototype.some.call(obj, callbackfn, thisArg);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-7.js
new file mode 100644
index 000000000..8ad280cfe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-7.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-7.js",
+
+ description: "Array.prototype.some - unhandled exceptions happened in callbackfn terminate iteration",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx > 0) {
+ accessed = true;
+ }
+ if (idx === 0) {
+ throw new Error("Exception occurred in callbackfn");
+ }
+ return false;
+ }
+
+ var obj = { 0: 9, 1: 100, 10: 11, length: 20 };
+
+ try {
+ Array.prototype.some.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return ex instanceof Error && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-8.js
new file mode 100644
index 000000000..9b66a3c9f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-8.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-8.js",
+
+ description: "Array.prototype.some - element changed by callbackfn on previous iterations is observed",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ obj[idx + 1] = 11;
+ }
+ return val > 10;
+ }
+
+ var obj = { 0: 9, 1: 8, length: 2 };
+
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-9.js
new file mode 100644
index 000000000..16dfac6ad
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-9.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-ii-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-ii-9.js",
+
+ description: "Array.prototype.some - callbackfn is called with 0 formal parameter",
+
+ test: function testcase() {
+
+ function callbackfn() {
+ return true;
+ }
+
+ return [11, 12].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-1.js
new file mode 100644
index 000000000..3de8254ab
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-1.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-1.js",
+
+ description: "Array.prototype.some - return value of callbackfn is undefined",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return undefined;
+ }
+
+ var obj = { 0: 11, length: 2 };
+
+ return !Array.prototype.some.call(obj, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-10.js
new file mode 100644
index 000000000..97daf0db3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-10.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-10.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a number (value is Infinity)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return Infinity;
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-11.js
new file mode 100644
index 000000000..e98e33d26
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-11.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-11.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a number (value is -Infinity)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return -Infinity;
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-12.js
new file mode 100644
index 000000000..d79ffa5ca
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-12.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-12.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a number (value is NaN)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return NaN;
+ }
+
+ return ![11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-13.js
new file mode 100644
index 000000000..8ac04ae67
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-13.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-13.js",
+
+ description: "Array.prototype.some - return value of callbackfn is an empty string",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return "";
+ }
+
+ return ![11].some(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-14.js
new file mode 100644
index 000000000..02721aff0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-14.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-14.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a non-empty string",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return "non-empty string";
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-15.js
new file mode 100644
index 000000000..fb1dc63d3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-15.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-15.js",
+
+ description: "Array.prototype.some - return value of callbackfn is Function object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return function () { };
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-16.js
new file mode 100644
index 000000000..d841a1f75
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-16.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-16.js",
+
+ description: "Array.prototype.some - return value of callbackfn is an Array object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new Array(10);
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-17.js
new file mode 100644
index 000000000..26d7bff7a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-17.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-17.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a String object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new String();
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-18.js
new file mode 100644
index 000000000..a9a93b0e9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-18.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-18.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a Boolean object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new Boolean();
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-19.js
new file mode 100644
index 000000000..412c24168
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-19.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-19.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a Number object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new Number();
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-2.js
new file mode 100644
index 000000000..8889497bb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-2.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-2.js",
+
+ description: "Array.prototype.some - return value of callbackfn is null",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return null;
+ }
+
+ var obj = { 0: 11, length: 2 };
+
+ return !Array.prototype.some.call(obj, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-20.js
new file mode 100644
index 000000000..09b94789d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-20.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-20.js",
+
+ description: "Array.prototype.some - return value of callbackfn is the Math object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return Math;
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-21.js
new file mode 100644
index 000000000..6c88d18aa
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-21.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-21.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a Date object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new Date();
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-22.js
new file mode 100644
index 000000000..6caf53e9c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-22.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-22.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a RegExp object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new RegExp();
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-23.js
new file mode 100644
index 000000000..22c45713b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-23.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-23.js",
+
+ description: "Array.prototype.some - return value of callbackfn is the JSON object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return JSON;
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-24.js
new file mode 100644
index 000000000..234ebb65b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-24.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-24.js",
+
+ description: "Array.prototype.some - return value of callbackfn is an Error object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new EvalError();
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-25.js
new file mode 100644
index 000000000..f524e09ba
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-25.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-25.js",
+
+ description: "Array.prototype.some - return value of callbackfn is the Arguments object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return arguments;
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-26.js
new file mode 100644
index 000000000..24ec47500
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-26.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-26.js",
+
+ description: "Array.prototype.some - return value of callbackfn is the global object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return fnGlobalObject();
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-28.js
new file mode 100644
index 000000000..e6db0368f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-28.js
@@ -0,0 +1,71 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-28.js",
+
+ description: "Array.prototype.some - true prevents further side effects",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ if (idx > 1) {
+ result = true;
+ }
+ return val > 10;
+ }
+
+ var obj = { length: 20 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 8;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ result = true;
+ return 11;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.some.call(obj, callbackfn) && !result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-29.js
new file mode 100644
index 000000000..19c818090
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-29.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-29.js",
+
+ description: "Array.prototype.some - return value (new Boolean(false)) of callbackfn is treated as true value",
+
+ test: function testcase() {
+
+ function callbackfn() {
+ return new Boolean(false);
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-3.js
new file mode 100644
index 000000000..e7460223c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-3.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-3.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a boolean (value is false)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return false;
+ }
+
+ var obj = { 0: 11, length: 2 };
+
+ return !Array.prototype.some.call(obj, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-4.js
new file mode 100644
index 000000000..04642e8ea
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-4.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-4.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a boolean (value is true)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, length: 2 };
+
+ return Array.prototype.some.call(obj, callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-5.js
new file mode 100644
index 000000000..8949ce394
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-5.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-5.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a number (value is 0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return 0;
+ }
+
+ return ![11].some(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-6.js
new file mode 100644
index 000000000..b96be6f5e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-6.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-6.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a number (value is +0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return +0;
+ }
+
+ return ![11].some(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-7.js
new file mode 100644
index 000000000..82e822a72
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-7.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-7.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a number (value is -0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return -0;
+ }
+
+ return ![11].some(callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-8.js
new file mode 100644
index 000000000..8b5c0f16f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-8.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-8.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a number (value is positive number)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return 5;
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-9.js
new file mode 100644
index 000000000..9fa167a6b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-9.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.17-7-c-iii-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-7-c-iii-9.js",
+
+ description: "Array.prototype.some - return value of callbackfn is a number (value is negative number)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return -5;
+ }
+
+ return [11].some(callbackfn);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-1.js
new file mode 100644
index 000000000..f199c0087
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-1.js
@@ -0,0 +1,40 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-8-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-1.js",
+
+description: "Array.prototype.some returns false if 'length' is 0 (empty array)",
+
+test: function testcase() {
+ function cb(){}
+ var i = [].some(cb);
+ if (i === false) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-10.js
new file mode 100644
index 000000000..c40c197ab
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-10.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-8-10",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-10.js",
+
+description: "Array.prototype.some - subclassed array when length is reduced",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 2;
+
+ function cb(val)
+ {
+ if(val > 2)
+ return true;
+ else
+ return false;
+ }
+ var i = f.some(cb);
+
+ if (i === false) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-11.js
new file mode 100644
index 000000000..81dabf9e6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-11.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-8-11",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-11.js",
+
+description: "Array.prototype.some returns false when all calls to callbackfn return false",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ return false;
+ }
+
+ var arr = [0,1,2,3,4,5,6,7,8,9];
+
+ if(arr.some(callbackfn) === false && callCnt === 10)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-12.js
new file mode 100644
index 000000000..027018ed9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-12.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-8-12",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-12.js",
+
+description: "Array.prototype.some doesn't mutate the array on which it is called on",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ return true;
+ }
+ var arr = [1,2,3,4,5];
+ arr.some(callbackfn);
+ if(arr[0] === 1 &&
+ arr[1] === 2 &&
+ arr[2] === 3 &&
+ arr[3] === 4 &&
+ arr[4] === 5)
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-13.js
new file mode 100644
index 000000000..a803520f4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-13.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-8-13",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-13.js",
+
+description: "Array.prototype.some doesn't visit expandos",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ return false;
+ }
+
+ var arr = [0,1,2,3,4,5,6,7,8,9];
+ arr["i"] = 10;
+ arr[true] = 11;
+
+ if(arr.some(callbackfn) === false && callCnt === 10)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-2.js
new file mode 100644
index 000000000..37c1cbc86
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-2.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-8-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-2.js",
+
+description: "Array.prototype.some returns false if 'length' is 0 (subclassed Array, length overridden to null (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = null;
+
+ function cb(){}
+ var i = f.some(cb);
+
+ if (i === false) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-3.js
new file mode 100644
index 000000000..3409ce7af
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-3.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-8-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-3.js",
+
+description: "Array.prototype.some returns false if 'length' is 0 (subclassed Array, length overridden to false (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = false;
+
+ function cb(){}
+ var i = f.some(cb);
+
+ if (i === false) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-4.js
new file mode 100644
index 000000000..87a0cf5dc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-4.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-8-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-4.js",
+
+description: "Array.prototype.some returns false if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 0;
+
+ function cb(){}
+ var i = f.some(cb);
+
+ if (i === false) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-5.js
new file mode 100644
index 000000000..7308a8405
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-5.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-8-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-5.js",
+
+description: "Array.prototype.some returns false if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = '0';
+
+ function cb(){}
+ var i = f.some(cb);
+
+ if (i === false) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-6.js
new file mode 100644
index 000000000..c78782487
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-6.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-8-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-6.js",
+
+description: "Array.prototype.some returns false if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { valueOf: function () { return 0;}};
+ f.length = o;
+
+ function cb(){}
+ var i = f.some(cb);
+
+ if (i === false) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-7.js
new file mode 100644
index 000000000..b36c037fb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-7.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-8-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-7.js",
+
+description: "Array.prototype.some returns false if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { toString: function () { return '0';}};
+ f.length = o;
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+
+ function cb(){}
+ var i = f.some(cb);
+
+ if (i === false) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-8.js
new file mode 100644
index 000000000..8028a246f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-8.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.17-8-8",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.17/15.4.4.17-8-8.js",
+
+description: "Array.prototype.some returns false if 'length' is 0 (subclassed Array, length overridden with []",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ function cb(){}
+ var i = f.some(cb);
+
+ if (i === false) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.some);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-1.js
new file mode 100644
index 000000000..7d85321cd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-1.js
@@ -0,0 +1,36 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-0-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-1.js",
+
+description: "Array.prototype.forEach must exist as a function",
+
+test: function testcase() {
+ var f = Array.prototype.forEach;
+ if (typeof(f) === "function") {
+ return true;
+ }
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-2.js
new file mode 100644
index 000000000..a86e978bb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-2.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-0-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-0-2.js",
+
+description: "Array.prototype.forEach.length must be 1",
+
+test: function testcase() {
+ if (Array.prototype.forEach.length === 1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-1.js
new file mode 100644
index 000000000..da762209d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-1.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-1.js",
+
+ description: "Array.prototype.forEach applied to undefined",
+
+ test: function testcase() {
+ try {
+ Array.prototype.forEach.call(undefined); // TypeError is thrown if value is undefined
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-10.js
new file mode 100644
index 000000000..9f7eeddf0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-10.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-10.js",
+
+ description: "Array.prototype.forEach applied to the Math object",
+
+ test: function testcase() {
+ var result = false;
+
+ function callbackfn(val, idx, obj) {
+ result = ('[object Math]' === Object.prototype.toString.call(obj));
+ }
+
+ try {
+ Math.length = 1;
+ Math[0] = 1;
+ Array.prototype.forEach.call(Math, callbackfn);
+ return result;
+ } finally {
+ delete Math[0];
+ delete Math.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-11.js
new file mode 100644
index 000000000..bcae50b8a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-11.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-11.js",
+
+ description: "Array.prototype.forEach applied to Date object",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = obj instanceof Date;
+ }
+
+ var obj = new Date();
+ obj.length = 1;
+ obj[0] = 1;
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-12.js
new file mode 100644
index 000000000..374e26392
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-12.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-12.js",
+
+ description: "Array.prototype.forEach applied to RegExp object",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = obj instanceof RegExp;
+ }
+
+ var obj = new RegExp();
+ obj.length = 1;
+ obj[0] = 1;
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-13.js
new file mode 100644
index 000000000..f17686325
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-13.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-13.js",
+
+ description: "Array.prototype.forEach applied to the JSON object",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = ('[object JSON]' === Object.prototype.toString.call(obj));
+ }
+
+ try {
+ JSON.length = 1;
+ JSON[0] = 1;
+ Array.prototype.forEach.call(JSON, callbackfn);
+ return result;
+ } finally {
+ delete JSON.length;
+ delete JSON[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-14.js
new file mode 100644
index 000000000..66e797a8d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-14.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-14.js",
+
+ description: "Array.prototype.forEach applied to Error object",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = obj instanceof Error;
+ }
+
+ var obj = new Error();
+ obj.length = 1;
+ obj[0] = 1;
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-15.js
new file mode 100644
index 000000000..4f328aa93
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-15.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-15.js",
+
+ description: "Array.prototype.forEach applied to the Arguments object",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = ('[object Arguments]' === Object.prototype.toString.call(obj));
+ }
+
+ var obj = (function () {
+ return arguments;
+ }("a", "b"));
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-2.js
new file mode 100644
index 000000000..949f94957
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-2.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-2.js",
+
+ description: "Array.prototype.forEach applied to null",
+
+ test: function testcase() {
+ try {
+ Array.prototype.forEach.call(null); // TypeError is thrown if value is null
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-3.js
new file mode 100644
index 000000000..cb4398125
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-3.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-3.js",
+
+ description: "Array.prototype.forEach applied to boolean primitive",
+
+ test: function testcase() {
+ var result = false;
+
+ function callbackfn(val, idx, obj) {
+ result = obj instanceof Boolean;
+ }
+
+ try {
+ Boolean.prototype[0] = true;
+ Boolean.prototype.length = 1;
+
+ Array.prototype.forEach.call(false, callbackfn);
+ return result;
+
+ } finally {
+ delete Boolean.prototype[0];
+ delete Boolean.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-4.js
new file mode 100644
index 000000000..3d5180d42
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-4.js",
+
+ description: "Array.prototype.forEach applied to Boolean object",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = obj instanceof Boolean;
+ }
+
+ var obj = new Boolean(true);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-5.js
new file mode 100644
index 000000000..6a971e471
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-5.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-5.js",
+
+ description: "Array.prototype.forEach applied to number primitive",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = obj instanceof Number;
+ }
+
+ try {
+ Number.prototype[0] = 1;
+ Number.prototype.length = 1;
+
+ Array.prototype.forEach.call(2.5, callbackfn);
+ return result;
+ } finally {
+ delete Number.prototype[0];
+ delete Number.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-6.js
new file mode 100644
index 000000000..87030be96
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-6.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-6.js",
+
+ description: "Array.prototype.forEach applied to Number object",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = obj instanceof Number;
+ }
+
+ var obj = new Number(-128);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-7.js
new file mode 100644
index 000000000..ecd77225f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-7.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-7.js",
+
+ description: "Array.prototype.forEach applied to string primitive",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = obj instanceof String;
+ }
+
+ Array.prototype.forEach.call("abc", callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-8.js
new file mode 100644
index 000000000..181861829
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-8.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-8.js",
+
+ description: "Array.prototype.forEach applied to String object",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = obj instanceof String;
+ }
+
+ var obj = new String("abc");
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-9.js
new file mode 100644
index 000000000..8b2b139aa
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-9.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-1-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-1-9.js",
+
+ description: "Array.prototype.forEach applied to Function object",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = obj instanceof Function;
+ }
+
+ var obj = function (a, b) {
+ return a + b;
+ };
+ obj[0] = 11;
+ obj[1] = 9;
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-1.js
new file mode 100644
index 000000000..ced793832
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-1.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-1.js",
+
+ description: "Array.prototype.forEach - 'length' is own data property on an Array-like object",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (obj.length === 2);
+ }
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: 2
+ };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-10.js
new file mode 100644
index 000000000..a9c13d110
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-10.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-10.js",
+
+ description: "Array.prototype.forEach applied to Array-like object, 'length' is an inherited accessor property",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (obj.length === 2);
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ Array.prototype.forEach.call(child, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-11.js
new file mode 100644
index 000000000..9c27ed50d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-11.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-11.js",
+
+ description: "Array.prototype.forEach applied to Array-like object, 'length' is an own accessor property without a get function",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 12
+ };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-12.js
new file mode 100644
index 000000000..6f0ef53f0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-12.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-12.js",
+
+ description: "Array.prototype.forEach - 'length' is own accessor property without a get function that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ try {
+ Object.defineProperty(Object.prototype, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var obj = { 0: 12, 1: 11 };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return !accessed;
+ } finally {
+ delete Object.prototype.length;
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-13.js
new file mode 100644
index 000000000..15fab8ffb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-13.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-13.js",
+
+ description: "Array.prototype.forEach applied to the Array-like object that 'length' is inherited accessor property without a get function",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 11;
+ child[1] = 12;
+
+ Array.prototype.forEach.call(child, callbackfn);
+ return !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-14.js
new file mode 100644
index 000000000..534b83a4d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-14.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-14.js",
+
+ description: "Array.prototype.forEach applied to the Array-like object that 'length' property doesn't exist",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 11, 1: 12 };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return !accessed;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-15.js
new file mode 100644
index 000000000..95493bebe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-15.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-15.js",
+
+ description: "Array.prototype.forEach - 'length' is property of the global object",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (obj.length === 2);
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 12;
+ fnGlobalObject()[1] = 11;
+ fnGlobalObject()[2] = 9;
+ fnGlobalObject().length = 2;
+ Array.prototype.forEach.call(fnGlobalObject(), callbackfn);
+ return result;
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-17.js
new file mode 100644
index 000000000..4c48a8a22
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-17.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-17.js",
+
+ description: "Array.prototype.forEach applied to the Arguments object, which implements its own property get method",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (obj.length === 2);
+ }
+
+ var func = function (a, b) {
+ arguments[2] = 9;
+ Array.prototype.forEach.call(arguments, callbackfn);
+ return result;
+ };
+
+ return func(12, 11);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-18.js
new file mode 100644
index 000000000..cead0abfb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-18.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-18.js",
+
+ description: "Array.prototype.forEach applied to String object, which implements its own property get method",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (obj.length === 3);
+ }
+
+ var str = new String("012");
+
+ Array.prototype.forEach.call(str, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-19.js
new file mode 100644
index 000000000..e20d92e84
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-19.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-19.js",
+
+ description: "Array.prototype.forEach applied to Function object, which implements its own property get method",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (obj.length === 2);
+ }
+
+ var fun = function (a, b) {
+ return a + b;
+ };
+ fun[0] = 12;
+ fun[1] = 11;
+ fun[2] = 9;
+
+ Array.prototype.forEach.call(fun, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-2.js
new file mode 100644
index 000000000..b72e72bbd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-2.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-2.js",
+
+ description: "Array.prototype.forEach - 'length' is own data property on an Array",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (obj.length === 2);
+ }
+
+ [12, 11].forEach(callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-3.js
new file mode 100644
index 000000000..d747d8a15
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-3.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-3.js",
+
+ description: "Array.prototype.forEach - 'length' is an own data property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (obj.length === 2);
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ Array.prototype.forEach.call(child, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-4.js
new file mode 100644
index 000000000..8d3fca26c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-4.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-4.js",
+
+ description: "Array.prototype.forEach - 'length' is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+ var result = false;
+ var arrProtoLen;
+ function callbackfn(val, idx, obj) {
+ result = (obj.length === 2);
+ }
+
+ try {
+ arrProtoLen = Array.prototype.length;
+ Array.prototype.length = 0;
+ [12, 11].forEach(callbackfn);
+ return result;
+ } finally {
+ Array.prototype.length = arrProtoLen;
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-5.js
new file mode 100644
index 000000000..eeebeaf88
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-5.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-5.js",
+
+ description: "Array.prototype.forEach applied to Array-like object, 'length' is an own data property that overrides an inherited accessor property",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (obj.length === 2);
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ Object.defineProperty(child, "length", {
+ value: 2,
+ configurable: true
+ });
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ Array.prototype.forEach.call(child, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-6.js
new file mode 100644
index 000000000..b7cb4045f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-6.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-6.js",
+
+ description: "Array.prototype.forEach applied to Array-like object, 'length' is an inherited data property",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (obj.length === 2);
+ }
+
+ var proto = { length: 2 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ Array.prototype.forEach.call(child, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-7.js
new file mode 100644
index 000000000..24d2bb691
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-7.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-7.js",
+
+ description: "Array.prototype.forEach applied to Array-like object, 'length' is an own accessor property",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (obj.length === 2);
+ }
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ obj[0] = 12;
+ obj[1] = 11;
+ obj[2] = 9;
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-8.js
new file mode 100644
index 000000000..a07cc94c2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-8.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-8.js",
+
+ description: "Array.prototype.forEach applied to Array-like object, 'length' is an own accessor property that overrides an inherited data property",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (obj.length === 2);
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ Array.prototype.forEach.call(child, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-9.js
new file mode 100644
index 000000000..c8414ed43
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-9.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-2-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-2-9.js",
+
+ description: "Array.prototype.forEach applied to Array-like object, 'length' is an own accessor property that overrides an inherited accessor property",
+
+ test: function testcase() {
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (obj.length === 2);
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ Array.prototype.forEach.call(child, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-1.js
new file mode 100644
index 000000000..67d07b471
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-1.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-1.js",
+
+ description: "Array.prototype.forEach - value of 'length' is undefined",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 0, 1: 1, length: undefined };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-10.js
new file mode 100644
index 000000000..132ed9851
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-10.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-10.js",
+
+ description: "Array.prototype.forEach - value of 'length' is a number (value is NaN)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: NaN };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-11.js
new file mode 100644
index 000000000..cd900321e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-11.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-11.js",
+
+ description: "Array.prototype.forEach - 'length' is a string containing a positive number",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult = (val > 10);
+ }
+
+ var obj = { 1: 11, 2: 9, length: "2" };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-12.js
new file mode 100644
index 000000000..3a3e98e82
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-12.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-12.js",
+
+ description: "Array.prototype.forEach - 'length' is a string containing a negative number",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult = (val > 10);
+ }
+
+ var obj = { 1: 11, 2: 9, length: "-4294967294" };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-13.js
new file mode 100644
index 000000000..e9e4f5a1a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-13.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-13.js",
+
+ description: "Array.prototype.forEach - 'length' is a string containing a decimal number",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult = (val > 10);
+ }
+ var obj = { 1: 11, 2: 9, length: "2.5" };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-14.js
new file mode 100644
index 000000000..df18db018
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-14.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-14.js",
+
+ description: "Array.prototype.forEach - 'length' is a string containing +/-Infinity",
+
+ test: function testcase() {
+
+ var accessed1 = false;
+ var accessed2 = false;
+ var accessed3 = false;
+
+ function callbackfn1(val, idx, obj) {
+ accessed1 = true;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ accessed2 = true;
+ }
+
+ function callbackfn3(val, idx, obj) {
+ accessed3 = true;
+ }
+
+ var obj1 = { 0: 9, length: "Infinity" };
+ var obj2 = { 0: 9, length: "-Infinity" };
+ var obj3 = { 0: 9, length: "+Infinity" };
+
+ Array.prototype.forEach.call(obj1, callbackfn1);
+ Array.prototype.forEach.call(obj2, callbackfn2);
+ Array.prototype.forEach.call(obj3, callbackfn3);
+
+ return !accessed1 && !accessed2 && !accessed3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-15.js
new file mode 100644
index 000000000..740e0b29a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-15.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-15.js",
+
+ description: "Array.prototype.forEach - 'length' is a string containing an exponential number",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult = (val > 10);
+ }
+
+ var obj = { 1: 11, 2: 9, length: "2E0" };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-16.js
new file mode 100644
index 000000000..62b7a196e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-16.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-16.js",
+
+ description: "Array.prototype.forEach - 'length' is a string containing a hex number",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult = (val > 10);
+ }
+
+ var obj = { 1: 11, 2: 9, length: "0x0002" };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-17.js
new file mode 100644
index 000000000..d3c4bf0fc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-17.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-17.js",
+
+ description: "Array.prototype.forEach - 'length' is a string containing a number with leading zeros",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult = (val > 10);
+ }
+
+ var obj = { 1: 11, 2: 9, length: "0002.00" };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-18.js
new file mode 100644
index 000000000..cf38acd17
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-18.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-18.js",
+
+ description: "Array.prototype.forEach - value of 'length' is a string that can't convert to a number",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: "asdf!_" };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-19.js
new file mode 100644
index 000000000..6cab500a5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-19.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-19.js",
+
+ description: "Array.prototype.forEach - value of 'length' is an Object which has an own toString method.",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult = (val > 10);
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: {
+ toString: function () {
+ return '2';
+ }
+ }
+ };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-2.js
new file mode 100644
index 000000000..3fafa1ef6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-2.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-2.js",
+
+ description: "Array.prototype.forEach - value of 'length' is a boolean (value is true)",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(val, idx, obj) {
+ testResult = (val > 10);
+ }
+
+ var obj = { 0: 11, 1: 9, length: true };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-20.js
new file mode 100644
index 000000000..b2cacf874
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-20.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-20.js",
+
+ description: "Array.prototype.forEach - value of 'length' is an Object which has an own valueOf method.",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult = (val > 10);
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: {
+ valueOf: function () {
+ return 2;
+ }
+ }
+ };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-21.js
new file mode 100644
index 000000000..b7b9f23a1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-21.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-21.js",
+
+ description: "Array.prototype.forEach - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var firstStepOccured = false;
+ var secondStepOccured = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult = (val > 10);
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: {
+ valueOf: function () {
+ firstStepOccured = true;
+ return {};
+ },
+ toString: function () {
+ secondStepOccured = true;
+ return '2';
+ }
+ }
+ };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult && firstStepOccured && secondStepOccured;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-22.js
new file mode 100644
index 000000000..72be71142
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-22.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-22.js",
+
+ description: "Array.prototype.forEach throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var firstStepOccured = false;
+ var secondStepOccured = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 12,
+
+ length: {
+ valueOf: function () {
+ firstStepOccured = true;
+ return {};
+ },
+ toString: function () {
+ secondStepOccured = true;
+ return {};
+ }
+ }
+ };
+
+ try {
+ Array.prototype.forEach.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-23.js
new file mode 100644
index 000000000..5375baee3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-23.js
@@ -0,0 +1,73 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-23.js",
+
+ description: "Array.prototype.forEach uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var valueOfAccessed = false;
+ var toStringAccessed = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult = (val > 10);
+ }
+
+ var proto = {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ child.toString = function () {
+ toStringAccessed = true;
+ return '1';
+ };
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: child
+ };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult && valueOfAccessed && !toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-24.js
new file mode 100644
index 000000000..9488c1ee0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-24.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-24.js",
+
+ description: "Array.prototype.forEach - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult = (val > 10);
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: 2.685
+ };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-25.js
new file mode 100644
index 000000000..19fd85727
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-25.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-25.js",
+
+ description: "Array.prototype.forEach - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult = (val > 10);
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: -4294967294.5
+ };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-28.js
new file mode 100644
index 000000000..6d429f6de
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-28.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-28.js",
+
+ description: "Array.prototype.forEach - value of 'length' is boundary value (2^32)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = {
+ 0: 12,
+ length: 4294967296
+ };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-29.js
new file mode 100644
index 000000000..66a18f1b7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-29.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-29.js",
+
+ description: "Array.prototype.forEach - value of 'length' is boundary value (2^32 + 1)",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult = (val > 10);
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 9,
+ length: 4294967297
+ };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-3.js
new file mode 100644
index 000000000..26a49d562
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-3.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-3.js",
+
+ description: "Array.prototype.forEach - value of 'length' is a number (value is 0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 1, 1: 1, length: 0 };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-4.js
new file mode 100644
index 000000000..f890f2dfd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-4.js",
+
+ description: "Array.prototype.forEach - value of 'length' is a number (value is +0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 11, length: +0 };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-5.js
new file mode 100644
index 000000000..b211fe083
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-5.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-5.js",
+
+ description: "Array.prototype.forEach - value of 'length' is a number (value is -0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 11, length: -0 };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-6.js
new file mode 100644
index 000000000..6369d238a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-6.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-6.js",
+
+ description: "Array.prototype.forEach - value of 'length' is a number (value is positive)",
+
+ test: function testcase() {
+
+ var testResult1 = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult1 = (val > 10);
+ }
+
+ var obj = { 1: 11, 2: 9, length: 2 };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-7.js
new file mode 100644
index 000000000..e257ccfe9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-7.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-7.js",
+
+ description: "Array.prototype.forEach - value of 'length' is a number (value is negative)",
+
+ test: function testcase() {
+
+ var testResult1 = false;
+
+ function callbackfn(val, idx, obj) {
+ testResult1 = (val > 10);
+ }
+
+ var obj = { 1: 11, 2: 9, length: -4294967294 };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-8.js
new file mode 100644
index 000000000..37da48603
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-8.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-8.js",
+
+ description: "Array.prototype.forEach - value of 'length' is a number (value is Infinity)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: Infinity };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-9.js
new file mode 100644
index 000000000..a45bad554
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-9.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-3-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-3-9.js",
+
+ description: "Array.prototype.forEach - value of 'length' is a number (value is -Infinity)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: -Infinity };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-1.js
new file mode 100644
index 000000000..91a21a741
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-1.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-4-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-1.js",
+
+description: "Array.prototype.forEach throws TypeError if callbackfn is undefined",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.forEach();
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-10.js
new file mode 100644
index 000000000..5e887341d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-10.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-4-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-10.js",
+
+ description: "Array.prototype.forEach - the exception is not thrown if exception was thrown by step 2",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.forEach.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-11.js
new file mode 100644
index 000000000..0c26b8a40
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-11.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-4-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-11.js",
+
+ description: "Array.prototype.forEach - the exception is not thrown if exception was thrown by step 3",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.forEach.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-12.js
new file mode 100644
index 000000000..9bcffd9fc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-12.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-4-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-12.js",
+
+ description: "Array.prototype.forEach - 'callbackfn' is a function",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ [11, 9].forEach(callbackfn);
+ return accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-15.js
new file mode 100644
index 000000000..54a3be28b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-15.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-4-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-15.js",
+
+ description: "Array.prototype.forEach - calling with no callbackfn is the same as passing undefined for callbackfn",
+
+ test: function testcase() {
+
+ var obj = { 10: 10 };
+ var lengthAccessed = false;
+ var loopAccessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ lengthAccessed = true;
+ return 20;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ loopAccessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.forEach.call(obj);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && lengthAccessed && !loopAccessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-2.js
new file mode 100644
index 000000000..78b341a83
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-2.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-4-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-2.js",
+
+description: "Array.prototype.forEach throws ReferenceError if callbackfn is unreferenced",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.forEach(foo);
+ }
+ catch(e) {
+ if(e instanceof ReferenceError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-3.js
new file mode 100644
index 000000000..0f8a34a3b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-3.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-4-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-3.js",
+
+description: "Array.prototype.forEach throws TypeError if callbackfn is null",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.forEach(null);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-4.js
new file mode 100644
index 000000000..172a81bd8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-4.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-4-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-4.js",
+
+description: "Array.prototype.forEach throws TypeError if callbackfn is boolean",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.forEach(true);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-5.js
new file mode 100644
index 000000000..be57901fc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-5.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-4-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-5.js",
+
+description: "Array.prototype.forEach throws TypeError if callbackfn is number",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.forEach(5);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-6.js
new file mode 100644
index 000000000..a41e505ce
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-6.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-4-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-6.js",
+
+description: "Array.prototype.forEach throws TypeError if callbackfn is string",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.forEach("abc");
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-7.js
new file mode 100644
index 000000000..cd3f80870
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-7.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-4-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-7.js",
+
+description: "Array.prototype.forEach throws TypeError if callbackfn is Object without Call internal method",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.forEach(new Object());
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-8.js
new file mode 100644
index 000000000..bb3de167d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-8.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-4-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-8.js",
+
+ description: "Array.prototype.forEach - side effects produced by step 2 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.forEach.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-9.js
new file mode 100644
index 000000000..0f2eb4690
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-9.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-4-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-4-9.js",
+
+ description: "Array.prototype.forEach - side effects produced by step 3 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "2";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.forEach.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1-s.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1-s.js
new file mode 100644
index 000000000..984677421
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1-s.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2010 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-5-1-s",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1-s.js",
+
+description: "Array.prototype.forEach - thisArg not passed to strict callbackfn",
+
+test: function testcase() {
+ var innerThisCorrect = false;
+
+ function callbackfn(val, idx, obj) {
+ "use strict";
+ innerThisCorrect = this===undefined;
+ return true;
+ }
+
+ [1].forEach(callbackfn);
+ return innerThisCorrect;
+ },
+
+strict:1,
+
+precondition: function prereq() {
+ return fnSupportsStrict() && fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1.js
new file mode 100644
index 000000000..e47dbf376
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.18-5-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-1.js",
+
+ description: "Array.prototype.forEach - thisArg is passed",
+
+ test: function testcase() {
+ this._15_4_4_18_5_1 = false;
+ var _15_4_4_18_5_1 = true;
+ var result;
+ function callbackfn(val, idx, obj) {
+ result = this._15_4_4_18_5_1;
+ }
+ var arr = [1];
+ arr.forEach(callbackfn)
+ return !result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-10.js
new file mode 100644
index 000000000..a67c15419
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-10.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-10.js",
+
+ description: "Array.prototype.forEach - Array Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+ var objArray = [];
+
+ function callbackfn(val, idx, obj) {
+ result = (this === objArray);
+ }
+
+ [11].forEach(callbackfn, objArray);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-11.js
new file mode 100644
index 000000000..a6234015d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-11.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-11.js",
+
+ description: "Array.prototype.forEach - String Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+ var objString = new String();
+
+ function callbackfn(val, idx, obj) {
+ result = (this === objString);
+ }
+
+ [11].forEach(callbackfn, objString);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-12.js
new file mode 100644
index 000000000..1616e8637
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-12.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-12.js",
+
+ description: "Array.prototype.forEach - Boolean Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+ var objBoolean = new Boolean();
+
+ function callbackfn(val, idx, obj) {
+ result = (this === objBoolean);
+ }
+
+ [11].forEach(callbackfn, objBoolean);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-13.js
new file mode 100644
index 000000000..3e2b805eb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-13.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-13.js",
+
+ description: "Array.prototype.forEach - Number Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+ var objNumber = new Number();
+
+ function callbackfn(val, idx, obj) {
+ result = (this === objNumber);
+ }
+
+ [11].forEach(callbackfn, objNumber);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-14.js
new file mode 100644
index 000000000..54d2fb69c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-14.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-14.js",
+
+ description: "Array.prototype.forEach - the Math object can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (this === Math);
+ }
+
+ [11].forEach(callbackfn, Math);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-15.js
new file mode 100644
index 000000000..8c39acd43
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-15.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-15.js",
+
+ description: "Array.prototype.forEach - Date Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+ var objDate = new Date();
+
+ function callbackfn(val, idx, obj) {
+ result = (this === objDate);
+ }
+
+ [11].forEach(callbackfn, objDate);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-16.js
new file mode 100644
index 000000000..54dc32b8d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-16.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-16.js",
+
+ description: "Array.prototype.forEach - RegExp Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+ var objRegExp = new RegExp();
+
+ function callbackfn(val, idx, obj) {
+ result = (this === objRegExp);
+ }
+
+ [11].forEach(callbackfn, objRegExp);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-17.js
new file mode 100644
index 000000000..f9aa7ae70
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-17.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-17.js",
+
+ description: "Array.prototype.forEach - the JSON object can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (this === JSON);
+ }
+
+ [11].forEach(callbackfn, JSON);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-18.js
new file mode 100644
index 000000000..1e9c6b200
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-18.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-18.js",
+
+ description: "Array.prototype.forEach - Error Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+ var objError = new RangeError();
+
+ function callbackfn(val, idx, obj) {
+ result = (this === objError);
+ }
+
+ [11].forEach(callbackfn, objError);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-19.js
new file mode 100644
index 000000000..c7695c296
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-19.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-19.js",
+
+ description: "Array.prototype.forEach - the Arguments object can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+ var arg;
+
+ function callbackfn(val, idx, obj) {
+ result = (this === arg);
+ }
+
+ (function fun() {
+ arg = arguments;
+ }(1, 2, 3));
+
+ [11].forEach(callbackfn, arg);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-2.js
new file mode 100644
index 000000000..9370adca9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-2.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-5-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-2.js",
+
+description: "Array.prototype.forEach - thisArg is Object",
+
+test: function testcase() {
+ var res = false;
+ var o = new Object();
+ o.res = true;
+ var result;
+ function callbackfn(val, idx, obj)
+ {
+ result = this.res;
+ }
+
+ var arr = [1];
+ arr.forEach(callbackfn,o)
+ if( result === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-21.js
new file mode 100644
index 000000000..337218867
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-21.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-21.js",
+
+ description: "Array.prototype.forEach - the global object can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (this === fnGlobalObject());
+ }
+
+ [11].forEach(callbackfn, fnGlobalObject());
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-22.js
new file mode 100644
index 000000000..9f6a57e21
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-22.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-22.js",
+
+ description: "Array.prototype.forEach - boolean primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+
+ function callbackfn(val, idx, obj) {
+ result = (this.valueOf() === false);
+ }
+
+ [11].forEach(callbackfn, false);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-23.js
new file mode 100644
index 000000000..3e7c8e612
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-23.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-23.js",
+
+ description: "Array.prototype.forEach - number primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (this.valueOf() === 101);
+ }
+
+ [11].forEach(callbackfn, 101);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-24.js
new file mode 100644
index 000000000..7c361fdd9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-24.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-24.js",
+
+ description: "Array.prototype.forEach - string primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (this.valueOf() === "abc");
+ }
+
+ [11].forEach(callbackfn, "abc");
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-25.js
new file mode 100644
index 000000000..1943eeb28
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-25.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.18-5-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-25.js",
+
+ description: "Array.prototype.forEach - thisArg not passed",
+
+ test: function testcase() {
+ function innerObj() {
+ this._15_4_4_18_5_25 = true;
+ var _15_4_4_18_5_25 = false;
+ var result;
+ function callbackfn(val, idx, obj) {
+ result = this._15_4_4_18_5_25;
+ }
+ var arr = [1];
+ arr.forEach(callbackfn)
+ this.retVal = !result;
+ }
+ return new innerObj().retVal;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-3.js
new file mode 100644
index 000000000..0443f4f7e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-3.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-5-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-3.js",
+
+description: "Array.prototype.forEach - thisArg is Array",
+
+test: function testcase() {
+ var res = false;
+ var a = new Array();
+ a.res = true;
+ var result;
+ function callbackfn(val, idx, obj)
+ {
+ result = this.res;
+ }
+
+ var arr = [1];
+ arr.forEach(callbackfn,a)
+ if( result === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-4.js
new file mode 100644
index 000000000..fda86434d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-5-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-4.js",
+
+description: "Array.prototype.forEach - thisArg is object from object template(prototype)",
+
+test: function testcase() {
+ var res = false;
+ var result;
+ function callbackfn(val, idx, obj)
+ {
+ result = this.res;
+ }
+
+ function foo(){}
+ foo.prototype.res = true;
+ var f = new foo();
+ var arr = [1];
+ arr.forEach(callbackfn,f)
+ if( result === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-5.js
new file mode 100644
index 000000000..72ed105a2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-5.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-5-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-5.js",
+
+description: "Array.prototype.forEach - thisArg is object from object template",
+
+test: function testcase() {
+ var res = false;
+ var result;
+ function callbackfn(val, idx, obj)
+ {
+ result = this.res;
+ }
+
+ function foo(){}
+ var f = new foo();
+ f.res = true;
+
+ var arr = [1];
+ arr.forEach(callbackfn,f)
+ if( result === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-6.js
new file mode 100644
index 000000000..7d602289d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-6.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-5-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-6.js",
+
+description: "Array.prototype.forEach - thisArg is function",
+
+test: function testcase() {
+ var res = false;
+ var result;
+ function callbackfn(val, idx, obj)
+ {
+ result = this.res;
+ }
+
+ function foo(){}
+ foo.res = true;
+
+ var arr = [1];
+ arr.forEach(callbackfn,foo)
+ if( result === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-7.js
new file mode 100644
index 000000000..4fb0457e7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-7.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-7.js",
+
+ description: "Array.prototype.forEach - built-in functions can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+
+ function callbackfn(val, idx, obj) {
+ result = (this === eval);
+ }
+
+ [11].forEach(callbackfn, eval);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-9.js
new file mode 100644
index 000000000..6745ca9b8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-9.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-5-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-5-9.js",
+
+ description: "Array.prototype.forEach - Function Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var result = false;
+ var objString = function () { };
+
+ function callbackfn(val, idx, obj) {
+ result = (this === objString);
+ }
+
+ [11].forEach(callbackfn, objString);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-1.js
new file mode 100644
index 000000000..04204725c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-1.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-7-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-1.js",
+
+description: "Array.prototype.forEach doesn't consider new elements added to array after the call",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ arr[2] = 3;
+ arr[5] = 6;
+ }
+
+ var arr = [1,2,,4,5];
+ arr.forEach(callbackfn);
+ if( callCnt === 5)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-2.js
new file mode 100644
index 000000000..f5133e517
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-2.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-7-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-2.js",
+
+description: "Array.prototype.forEach doesn't visit deleted elements in array after the call",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ if(callCnt == 0)
+ delete arr[3];
+ callCnt++;
+ }
+
+ var arr = [1,2,3,4,5];
+ arr.forEach(callbackfn)
+ if( callCnt === 4)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-3.js
new file mode 100644
index 000000000..f974a2e5a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-7-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-3.js",
+
+description: "Array.prototype.forEach doesn't visit deleted elements when Array.length is decreased",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ arr.length=3;
+ callCnt++;
+ }
+
+ var arr = [1,2,3,4,5];
+ arr.forEach(callbackfn);
+ if( callCnt === 3)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-4.js
new file mode 100644
index 000000000..5c862c934
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-7-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-4.js",
+
+description: "Array.prototype.forEach doesn't consider newly added elements in sparse array",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ arr[1000] = 3;
+ callCnt++;
+ }
+
+ var arr = new Array(10);
+ arr[1] = 1;
+ arr[2] = 2;
+ arr.forEach(callbackfn);
+ if( callCnt === 2)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-5.js
new file mode 100644
index 000000000..d9d964d65
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-5.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-7-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-5.js",
+
+description: "Array.prototype.forEach visits deleted element in array after the call when same index is also present in prototype",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ delete arr[4];
+ callCnt++;
+ }
+
+ Array.prototype[4] = 5;
+
+ var arr = [1,2,3,4,5];
+ arr.forEach(callbackfn)
+ delete Array.prototype[4];
+ if( callCnt === 5)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-7.js
new file mode 100644
index 000000000..0948b2a7b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-7.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.18-7-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-7.js",
+
+ description: "Array.prototype.forEach - considers new value of elements in array after the call",
+
+ test: function testcase() {
+
+ var result = false;
+ var arr = [1, 2, 3, 4, 5];
+
+ function callbackfn(val, Idx, obj) {
+ arr[4] = 6;
+ if (val >= 6) {
+ result = true;
+ }
+ }
+
+ arr.forEach(callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-8.js
new file mode 100644
index 000000000..6280954a9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-8.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-8.js",
+
+ description: "Array.prototype.forEach - no observable effects occur if len is 0",
+
+ test: function testcase() {
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 11, 1: 12, length: 0 };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-9.js
new file mode 100644
index 000000000..5473ced9d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-9.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-9.js",
+
+ description: "Array.prototype.forEach - modifications to length don't change number of iterations",
+
+ test: function testcase() {
+
+ var called = 0;
+ function callbackfn(val, idx, obj) {
+ called++;
+ }
+
+ var obj = { 1: 12, 2: 9, length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ obj.length = 3;
+ return 11;
+ },
+ configurable: true
+ });
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return 2 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-1.js
new file mode 100644
index 000000000..6454d4ef5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-1.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-7-b-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-1.js",
+
+description: "Array.prototype.forEach - callbackfn not called for indexes never been assigned values",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ }
+
+ var arr = new Array(10);
+ arr[1] = undefined;
+ arr.forEach(callbackfn);
+ if( callCnt === 1)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-10.js
new file mode 100644
index 000000000..063b7154a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-10.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-10.js",
+
+ description: "Array.prototype.forEach - deleting property of prototype causes prototype index property not to be visited on an Array-like Object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ if (idx === 3) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 2: 2, length: 20 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete Object.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ Array.prototype.forEach.call(obj, callbackfn);
+ return testResult && accessed;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-11.js
new file mode 100644
index 000000000..3abcd809d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-11.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-11.js",
+
+ description: "Array.prototype.forEach - deleting property of prototype causes prototype index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0, , ];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete Array.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ arr.forEach(callbackfn);
+ return testResult && accessed;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-12.js
new file mode 100644
index 000000000..b1f671520
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-12.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-12.js",
+
+ description: "Array.prototype.forEach - deleting own property with prototype property causes prototype index property to be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ testResult = true;
+ }
+ }
+
+ var obj = { 0: 0, 1: 111, length: 10 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ Array.prototype.forEach.call(obj, callbackfn);
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-13.js
new file mode 100644
index 000000000..56a1213e3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-13.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-13.js",
+
+ description: "Array.prototype.forEach - deleting own property with prototype property causes prototype index property to be visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ testResult = true;
+ }
+ }
+ var arr = [0, 111];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ arr.forEach(callbackfn);
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-14.js
new file mode 100644
index 000000000..d302ea788
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-14.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-14.js",
+
+ description: "Array.prototype.forEach - decreasing length of array causes index property not to be visited",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ if (idx === 3) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0, 1, 2, "last"];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr.length = 3;
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.forEach(callbackfn);
+
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-15.js
new file mode 100644
index 000000000..c235788bb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-15.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-15.js",
+
+ description: "Array.prototype.forEach - decreasing length of array with prototype property causes prototype index property to be visited",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 2 && val === "prototype") {
+ testResult = true;
+ }
+ }
+ var arr = [0, 1, 2];
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "prototype";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.forEach(callbackfn);
+
+ return testResult;
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-16.js
new file mode 100644
index 000000000..b09a63fec
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-16.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-16.js",
+
+ description: "Array.prototype.forEach - decreasing length of array does not delete non-configurable properties",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 2 && val === "unconfigurable") {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, 1, 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "unconfigurable";
+ },
+ configurable: false
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.forEach(callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-2.js
new file mode 100644
index 000000000..d59057a30
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-2.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-2.js",
+
+ description: "Array.prototype.forEach - added properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 2 && val === "length") {
+ testResult = true;
+ }
+ }
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ obj[2] = "length";
+ return 3;
+ },
+ configurable: true
+ });
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-3.js
new file mode 100644
index 000000000..a86a8b0cc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-3.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-3.js",
+
+ description: "Array.prototype.forEach - deleted properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ if (idx === 8) {
+ testResult = false;
+ }
+ }
+ var obj = { 2: 6.99, 8: 19 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ delete obj[8];
+ return 10;
+ },
+ configurable: true
+ });
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-4.js
new file mode 100644
index 000000000..77fcbf653
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-4.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-4.js",
+
+ description: "Array.prototype.forEach - properties added into own object after current position are visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ testResult = true;
+ }
+ }
+
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-5.js
new file mode 100644
index 000000000..fd0618d0c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-5.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-5.js",
+
+ description: "Array.prototype.forEach - properties added into own object after current position are visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.forEach(callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-6.js
new file mode 100644
index 000000000..fbf76bd7c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-6.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-6.js",
+
+ description: "Array.prototype.forEach - properties can be added to prototype after current position are visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 6.99) {
+ testResult = true;
+ }
+ }
+
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.forEach.call(obj, callbackfn);
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-7.js
new file mode 100644
index 000000000..5fb748f16
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-7.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-7.js",
+
+ description: "Array.prototype.forEach - properties can be added to prototype after current position are visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 6.99) {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ arr.forEach(callbackfn);
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-8.js
new file mode 100644
index 000000000..a0a359cef
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-8.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-8.js",
+
+ description: "Array.prototype.forEach - deleting own property causes index property not to be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-9.js
new file mode 100644
index 000000000..01d8c373e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-9.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-b-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-b-9.js",
+
+ description: "Array.prototype.forEach - deleting own property causes index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var arr = [1, 2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "6.99";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.forEach(callbackfn);
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-1.js
new file mode 100644
index 000000000..86dee575a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-1.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-1.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is own data property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = { };
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 5) {
+ testResult = (val === kValue);
+ }
+ }
+
+ var obj = { 5: kValue, length: 100 };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-10.js
new file mode 100644
index 000000000..18f32a899
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-10.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-10.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is own accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 2) {
+ testResult = (val === 12);
+ }
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return 12;
+ },
+ configurable: true
+ });
+
+ arr.forEach(callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-11.js
new file mode 100644
index 000000000..b24106f51
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-11.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-11.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ testResult = (val === 11);
+ }
+ }
+
+ var proto = { 0: 5 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ Object.defineProperty(child, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ Array.prototype.forEach.call(child, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-12.js
new file mode 100644
index 000000000..b92cbc990
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-12.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-12.js",
+
+ description: " Array.prototype.forEach - element to be retrieved is own accessor property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ testResult = (val === 111);
+ }
+ }
+
+ var arr = [];
+ try {
+ Array.prototype[0] = 10;
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return 111;
+ },
+ configurable: true
+ });
+
+ arr.forEach(callbackfn);
+
+ return testResult;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-13.js
new file mode 100644
index 000000000..242a131cd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-13.js
@@ -0,0 +1,73 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-13.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ testResult = (val === 12);
+ }
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 6;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ Object.defineProperty(child, "1", {
+ get: function () {
+ return 12;
+ },
+ configurable: true
+ });
+
+
+ Array.prototype.forEach.call(child, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-14.js
new file mode 100644
index 000000000..1b9c747e0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-14.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-14.js",
+
+ description: " Array.prototype.forEach - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ testResult = (val === 11);
+ }
+ }
+
+ var arr = [];
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 5;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ arr.forEach(callbackfn);
+
+ return testResult;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-15.js
new file mode 100644
index 000000000..ca346a0b5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-15.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-15.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ testResult = (val === 11);
+ }
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 20;
+
+ Array.prototype.forEach.call(child, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-16.js
new file mode 100644
index 000000000..9733824b1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-16.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-16.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ testResult = (val === 11);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ [, , , ].forEach(callbackfn);
+
+ return testResult;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-17.js
new file mode 100644
index 000000000..719940e7e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-17.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-17.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is own accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof val === "undefined");
+ }
+ }
+
+ var obj = { length: 2 };
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-18.js
new file mode 100644
index 000000000..bd36b7303
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-18.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-18.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is own accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ testResult = (typeof val === "undefined");
+ }
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ arr.forEach(callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-19.js
new file mode 100644
index 000000000..7db65040d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-19.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-19.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof val === "undefined");
+ }
+ }
+
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ try {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 10;
+ },
+ configurable: true
+ });
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-2.js
new file mode 100644
index 000000000..6dc9ed28c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-2.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is own data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ testResult = (val === 11);
+ }
+ }
+
+ [11].forEach(callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-20.js
new file mode 100644
index 000000000..3a5faae3f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-20.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-20.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ testResult = (typeof val === "undefined");
+ }
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 100;
+ },
+ configurable: true
+ });
+
+ arr.forEach(callbackfn);
+
+ return testResult;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-21.js
new file mode 100644
index 000000000..fcd10f1b9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-21.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-21.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is inherited accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof val === "undefined");
+ }
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+
+ Array.prototype.forEach.call(child, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-22.js
new file mode 100644
index 000000000..93c7acfc1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-22.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-22.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is inherited accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ testResult = (typeof val === "undefined");
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ [, 1].forEach(callbackfn);
+
+ return testResult;
+ } finally {
+ delete Array.prototype[0];
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-23.js
new file mode 100644
index 000000000..00b476792
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-23.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-23.js",
+
+ description: "Array.prototype.forEach - This object is an global object which contains index property",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ testResult = (val === 11);
+ }
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 11;
+ fnGlobalObject().length = 1;
+
+ Array.prototype.forEach.call(fnGlobalObject(), callbackfn);
+
+ return testResult;
+ } finally {
+ delete fnGlobalObject()[0];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-25.js
new file mode 100644
index 000000000..3ec4890c2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-25.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-25.js",
+
+ description: "Array.prototype.forEach - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ testResult = (val === 11);
+ }
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.forEach.call(arguments, callbackfn);
+ };
+
+ func(11);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-26.js
new file mode 100644
index 000000000..23a7e63f2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-26.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-26.js",
+
+ description: "Array.prototype.forEach - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)",
+
+ test: function testcase() {
+
+ var called = 0;
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ if (called !== 1 && !testResult) {
+ return;
+ }
+ if (idx === 0) {
+ testResult = (val === 11);
+ } else if (idx === 1) {
+ testResult = (val === 9);
+ } else {
+ testResult = false;
+ }
+ }
+
+ var func = function (a, b) {
+ Array.prototype.forEach.call(arguments, callbackfn);
+ };
+
+ func(11, 9);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-27.js
new file mode 100644
index 000000000..85280bf97
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-27.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-27.js",
+
+ description: "Array.prototype.forEach - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)",
+
+ test: function testcase() {
+
+ var called = 0;
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ if (called !== 1 && !testResult) {
+ return;
+ }
+ if (idx === 0) {
+ testResult = (val === 11);
+ } else if (idx === 1) {
+ testResult = (val === 12);
+ } else if (idx === 2) {
+ testResult = (val === 9);
+ } else {
+ testResult = false;
+ }
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.forEach.call(arguments, callbackfn);
+ };
+
+ func(11, 12, 9);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-28.js
new file mode 100644
index 000000000..2d3edce59
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-28.js
@@ -0,0 +1,71 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-28.js",
+
+ description: "Array.prototype.forEach - element changed by getter on previous iterations is observed on an Array",
+
+ test: function testcase() {
+
+ var preIterVisible = false;
+ var arr = [];
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ testResult = (val === 9);
+ }
+ }
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ preIterVisible = true;
+ return 11;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 9;
+ } else {
+ return 13;
+ }
+ },
+ configurable: true
+ });
+
+ arr.forEach(callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-29.js
new file mode 100644
index 000000000..58b3e38a6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-29.js
@@ -0,0 +1,71 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-29.js",
+
+ description: "Array.prototype.forEach - element changed by getter on previous iterations is observed on an Array-like object",
+
+ test: function testcase() {
+
+ var preIterVisible = false;
+ var obj = { length: 2 };
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ testResult = (val === 9);
+ }
+ }
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ preIterVisible = true;
+ return 11;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 9;
+ } else {
+ return 13;
+ }
+ },
+ configurable: true
+ });
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-3.js
new file mode 100644
index 000000000..eb9b8e407
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-3.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-3.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 5) {
+ testResult = (val === kValue);
+ }
+ }
+
+ var proto = { 5: 100 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[5] = kValue;
+ child.length = 10;
+
+ Array.prototype.forEach.call(child, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-30.js
new file mode 100644
index 000000000..c2cf055fc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-30.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-30.js",
+
+ description: "Array.prototype.forEach - unnhandled exceptions happened in getter terminate iteration on an Array-like object",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 5: 10, 10: 8, length: 20 };
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx > 1) {
+ accessed = true;
+ }
+ }
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ accessed = true;
+ return 100;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.forEach.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-31.js
new file mode 100644
index 000000000..e1ef6eb4b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-31.js
@@ -0,0 +1,72 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-31.js",
+
+ description: "Array.prototype.forEach - unnhandled exceptions happened in getter terminate iteration on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx > 1) {
+ accessed = true;
+ }
+ }
+
+ var arr = [];
+ arr[5] = 10;
+ arr[10] = 100;
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ accessed = true;
+ return 100;
+ },
+ configurable: true
+ });
+
+ try {
+ arr.forEach(callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-4.js
new file mode 100644
index 000000000..7fa1b878e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-4.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-4.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ testResult = (val === 12);
+ }
+ }
+
+ try {
+ Array.prototype[0] = 11;
+
+ [12].forEach(callbackfn);
+
+ return testResult;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-5.js
new file mode 100644
index 000000000..ed5ca0959
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-5.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-5.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ testResult = (val === 11);
+ }
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return 5;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ Object.defineProperty(child, "0", {
+ value: 11,
+ configurable: true
+ });
+
+ Array.prototype.forEach.call(child, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-6.js
new file mode 100644
index 000000000..1b479366d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-6.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-6.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is own data property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ testResult = (val === 11);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 9;
+ },
+ configurable: true
+ });
+
+ [11].forEach(callbackfn);
+
+ return testResult;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-7.js
new file mode 100644
index 000000000..e39e85457
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-7.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-7.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = 'abc';
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 5) {
+ testResult = (val === kValue);
+ }
+ }
+
+ var proto = { 5: kValue };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ Array.prototype.forEach.call(child, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-8.js
new file mode 100644
index 000000000..4cec36a84
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-8.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-8.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is inherited data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ testResult = (val === 13);
+ }
+ }
+
+ try {
+ Array.prototype[1] = 13;
+
+ [, , , ].forEach(callbackfn);
+
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && ![, 1].hasOwnProperty(0);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-9.js
new file mode 100644
index 000000000..1d24e329e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-9.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-i-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-i-9.js",
+
+ description: "Array.prototype.forEach - element to be retrieved is own accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ testResult = (val === 11);
+ }
+ }
+
+ var obj = { 10: 10, length: 20 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ Array.prototype.forEach.call(obj, callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-1.js
new file mode 100644
index 000000000..8ed151536
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-1.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-7-c-ii-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-1.js",
+
+description: "Array.prototype.forEach - callbackfn called with correct parameters",
+
+test: function testcase() {
+
+ var bPar = true;
+ var bCalled = false;
+ function callbackfn(val, idx, obj)
+ {
+ bCalled = true;
+ if(obj[idx] !== val)
+ bPar = false;
+ }
+
+ var arr = [0,1,true,null,new Object(),"five"];
+ arr[999999] = -6.6;
+ arr.forEach(callbackfn);
+ if(bCalled === true && bPar === true)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-10.js
new file mode 100644
index 000000000..b4d31dda7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-10.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-10.js",
+
+ description: "Array.prototype.forEach - callbackfn is called with 1 formal parameter",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(val) {
+ result = (val > 10);
+ }
+
+ [11].forEach(callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-11.js
new file mode 100644
index 000000000..1ee573ef7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-11.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-11.js",
+
+ description: "Array.prototype.forEach - callbackfn is called with 2 formal parameter",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(val, idx) {
+ result = (val > 10 && arguments[2][idx] === val);
+ }
+
+ [11].forEach(callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-12.js
new file mode 100644
index 000000000..3db492cce
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-12.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-12.js",
+
+ description: "Array.prototype.forEach - callbackfn is called with 3 formal parameter",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (val > 10 && obj[idx] === val);
+ }
+
+ [11].forEach(callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-13.js
new file mode 100644
index 000000000..b5b7e3165
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-13.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-13.js",
+
+ description: "Array.prototype.forEach - callbackfn that uses arguments",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn() {
+ result = (arguments[2][arguments[1]] === arguments[0]);
+ }
+
+ [11].forEach(callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-16.js
new file mode 100644
index 000000000..c8b922798
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-16.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-16.js",
+
+ description: "Array.prototype.forEach - 'this' of 'callbackfn' is a Boolean object when T is not an object (T is a boolean)",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (this.valueOf() !== false);
+ }
+
+ var obj = { 0: 11, length: 2 };
+
+ Array.prototype.forEach.call(obj, callbackfn, false);
+ return !result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-17.js
new file mode 100644
index 000000000..bcdbba38c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-17.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-17.js",
+
+ description: "Array.prototype.forEach - 'this' of 'callbackfn' is a Number object when T is not an object (T is a number)",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(val, idx, o) {
+ result = (5 === this.valueOf());
+ }
+
+ var obj = { 0: 11, length: 2 };
+
+ Array.prototype.forEach.call(obj, callbackfn, 5);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-18.js
new file mode 100644
index 000000000..e345f3a03
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-18.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-18.js",
+
+ description: "Array.prototype.forEach - 'this' of 'callbackfn' is an String object when T is not an object (T is a string)",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = ('hello' === this.valueOf());
+ }
+
+ var obj = { 0: 11, length: 2 };
+
+ Array.prototype.forEach.call(obj, callbackfn, "hello");
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-19.js
new file mode 100644
index 000000000..e90ca76fa
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-19.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-19.js",
+
+ description: "Array.prototype.forEach - non-indexed properties are not called",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var result = true;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ if (val === 8) {
+ result = false;
+ }
+ }
+
+ var obj = { 0: 11, 10: 12, non_index_property: 8, length: 20 };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return result && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-2.js
new file mode 100644
index 000000000..73e01d832
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-7-c-ii-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-2.js",
+
+description: "Array.prototype.forEach - callbackfn takes 3 arguments",
+
+test: function testcase() {
+
+ var parCnt = 3;
+ var bCalled = false
+ function callbackfn(val, idx, obj)
+ {
+ bCalled = true;
+ if(arguments.length !== 3)
+ parCnt = arguments.length; //verify if callbackfn was called with 3 parameters
+ }
+
+ var arr = [0,1,2,3,4,5,6,7,8,9];
+ arr.forEach(callbackfn);
+ if(bCalled === true && parCnt === 3)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-20.js
new file mode 100644
index 000000000..6f6fb25b5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-20.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-20.js",
+
+ description: "Array.prototype.forEach - callbackfn called with correct parameters (thisArg is correct)",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(val, idx, obj) {
+ result = (10 === this.threshold);
+ }
+
+ var thisArg = { threshold: 10 };
+
+ var obj = { 0: 11, length: 1 };
+
+ Array.prototype.forEach.call(obj, callbackfn, thisArg);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-21.js
new file mode 100644
index 000000000..69c8ba4fd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-21.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-21.js",
+
+ description: "Array.prototype.forEach - callbackfn called with correct parameters (kValue is correct)",
+
+ test: function testcase() {
+
+ var resultOne = false;
+ var resultTwo = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ resultOne = (val === 11);
+ }
+
+ if (idx === 1) {
+ resultTwo = (val === 12);
+ }
+
+ }
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return resultOne && resultTwo;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-22.js
new file mode 100644
index 000000000..1952f34a9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-22.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-22.js",
+
+ description: "Array.prototype.forEach - callbackfn called with correct parameters (the index k is correct)",
+
+ test: function testcase() {
+
+ var resultOne = false;
+ var resultTwo = false;
+
+ function callbackfn(val, idx, obj) {
+ if (val === 11) {
+ resultOne = (idx === 0);
+ }
+
+ if (val === 12) {
+ resultTwo = (idx === 1);
+ }
+
+ }
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return resultOne && resultTwo;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-23.js
new file mode 100644
index 000000000..8d9d47989
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-23.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-23.js",
+
+ description: "Array.prototype.forEach - callbackfn called with correct parameters (this object O is correct)",
+
+ test: function testcase() {
+
+ var result = false;
+ var obj = { 0: 11, length: 2 };
+
+ function callbackfn(val, idx, o) {
+ result = (obj === o);
+ }
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-4.js
new file mode 100644
index 000000000..a833c8cce
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-4.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-4.js",
+
+ description: "Array.prototype.forEach - k values are passed in ascending numeric order",
+
+ test: function testcase() {
+
+ var arr = [0, 1, 2, 3, 4, 5];
+ var lastIdx = 0;
+ var called = 0;
+ var result = true;
+ function callbackfn(val, idx, o) {
+ called++;
+ if (lastIdx !== idx) {
+ result = false;
+ } else {
+ lastIdx++;
+ }
+ }
+
+ arr.forEach(callbackfn);
+ return result && arr.length === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-5.js
new file mode 100644
index 000000000..5e2261de6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-5.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-5.js",
+
+ description: "Array.prototype.forEach - k values are accessed during each iteration and not prior to starting the loop on an Array",
+
+ test: function testcase() {
+
+ var result = true;
+ var kIndex = [];
+
+ //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time.
+ function callbackfn(val, idx, obj) {
+ //Each position should be visited one time, which means k is accessed one time during iterations.
+ if (typeof kIndex[idx] === "undefined") {
+ //when current position is visited, its previous index should has been visited.
+ if (idx !== 0 && typeof kIndex[idx - 1] === "undefined") {
+ result = false;
+ }
+ kIndex[idx] = 1;
+ } else {
+ result = false;
+ }
+ }
+
+ [11, 12, 13, 14].forEach(callbackfn, undefined);
+
+ return result;
+ },
+
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-6.js
new file mode 100644
index 000000000..a66c187db
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-6.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-6.js",
+
+ description: "Array.prototype.forEach - arguments to callbackfn are self consistent",
+
+ test: function testcase() {
+
+ var result = false;
+ var obj = { 0: 11, length: 1 };
+ var thisArg = {};
+
+ function callbackfn() {
+ result = (this === thisArg &&
+ arguments[0] === 11 &&
+ arguments[1] === 0 &&
+ arguments[2] === obj);
+ }
+
+ Array.prototype.forEach.call(obj, callbackfn, thisArg);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-7.js
new file mode 100644
index 000000000..a9a68c223
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-7.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-7.js",
+
+ description: "Array.prototype.forEach - unhandled exceptions happened in callbackfn terminate iteration",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx > 0) {
+ accessed = true;
+ }
+ if (idx === 0) {
+ throw new Error("Exception occurred in callbackfn");
+ }
+ }
+
+ var obj = { 0: 11, 4: 10, 10: 8, length: 20 };
+
+ try {
+ Array.prototype.forEach.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return ex instanceof Error && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-8.js
new file mode 100644
index 000000000..0f09ddde3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-8.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-8.js",
+
+ description: "Array.prototype.forEach - element changed by callbackfn on previous iterations is observed",
+
+ test: function testcase() {
+
+ var result = false;
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ function callbackfn(val, idx, o) {
+ if (idx === 0) {
+ obj[idx + 1] = 8;
+ }
+
+ if (idx === 1) {
+ result = (val === 8);
+ }
+ }
+
+ Array.prototype.forEach.call(obj, callbackfn);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-9.js
new file mode 100644
index 000000000..04263be8d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-9.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.18-7-c-ii-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-7-c-ii-9.js",
+
+ description: "Array.prototype.forEach - callbackfn is called with 0 formal parameter",
+
+ test: function testcase() {
+
+ var called = 0;
+ function callbackfn() {
+ called++;
+ }
+
+ [11, 12].forEach(callbackfn);
+ return 2 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-1.js
new file mode 100644
index 000000000..6cbb12b8a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-1.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-8-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-1.js",
+
+description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (empty array)",
+
+test: function testcase() {
+ var callCnt = 0;
+ function cb(){callCnt++}
+ var i = [].forEach(cb);
+ if (callCnt === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-10.js
new file mode 100644
index 000000000..535f2a871
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-10.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-8-10",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-10.js",
+
+description: "Array.prototype.forEach - subclassed array when length is reduced",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 1;
+
+ var callCnt = 0;
+ function cb(){callCnt++}
+ var i = f.forEach(cb);
+ if (callCnt === 1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-11.js
new file mode 100644
index 000000000..72cd21e03
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-11.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-8-11",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-11.js",
+
+description: "Array.prototype.forEach doesn't mutate the array on which it is called on",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ return true;
+ }
+ var arr = [1,2,3,4,5];
+ arr.forEach(callbackfn);
+ if(arr[0] === 1 &&
+ arr[1] === 2 &&
+ arr[2] === 3 &&
+ arr[3] === 4 &&
+ arr[4] === 5)
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-12.js
new file mode 100644
index 000000000..2bcda8176
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-12.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-8-12",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-12.js",
+
+description: "Array.prototype.forEach doesn't visit expandos",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ }
+ var arr = [1,2,3,4,5];
+ arr["i"] = 10;
+ arr[true] = 11;
+
+ arr.forEach(callbackfn);
+ if(callCnt == 5)
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-13.js
new file mode 100644
index 000000000..6fb745301
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-13.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.18-8-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-13.js",
+
+ description: "Array.prototype.forEach - undefined will be returned when 'len' is 0",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ }
+
+ var result = [].forEach(callbackfn);
+ return typeof result === "undefined" && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-2.js
new file mode 100644
index 000000000..df4ec7b0d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-2.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-8-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-2.js",
+
+description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden to null (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = null;
+
+ var callCnt = 0;
+ function cb(){callCnt++}
+ var i = f.forEach(cb);
+ if (callCnt === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-3.js
new file mode 100644
index 000000000..7a484d19d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-3.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-8-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-3.js",
+
+description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden to false (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = false;
+
+ var callCnt = 0;
+ function cb(){callCnt++}
+ var i = f.forEach(cb);
+ if (callCnt === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-4.js
new file mode 100644
index 000000000..4dad8a130
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-4.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-8-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-4.js",
+
+description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 0;
+
+ var callCnt = 0;
+ function cb(){callCnt++}
+ var i = f.forEach(cb);
+ if (callCnt === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-5.js
new file mode 100644
index 000000000..9581609b6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-5.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-8-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-5.js",
+
+description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = '0';
+
+ var callCnt = 0;
+ function cb(){callCnt++}
+ var i = f.forEach(cb);
+ if (callCnt === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-6.js
new file mode 100644
index 000000000..310824f04
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-6.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-8-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-6.js",
+
+description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { valueOf: function () { return 0;}};
+ f.length = o;
+
+ var callCnt = 0;
+ function cb(){callCnt++}
+ var i = f.forEach(cb);
+ if (callCnt === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-7.js
new file mode 100644
index 000000000..b4d07f53b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-7.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-8-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-7.js",
+
+description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { toString: function () { return '0';}};
+ f.length = o;
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ var callCnt = 0;
+ function cb(){callCnt++}
+ var i = f.forEach(cb);
+ if (callCnt === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-8.js
new file mode 100644
index 000000000..b915a3192
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-8.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-8-8",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-8.js",
+
+description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden with []",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+ var callCnt = 0;
+ function cb(){callCnt++}
+ var i = f.forEach(cb);
+ if (callCnt === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-9.js
new file mode 100644
index 000000000..2ff2dbc7e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-9.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.18-8-9",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.18/15.4.4.18-8-9.js",
+
+description: "Array.prototype.forEach doesn't call callbackfn if 'length' is 0 (subclassed Array, length overridden with [0]",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [0];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ var callCnt = 0;
+ function cb(){callCnt++}
+ var i = f.forEach(cb);
+ if (callCnt === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.forEach);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-1.js
new file mode 100644
index 000000000..6ff5a7258
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-1.js
@@ -0,0 +1,36 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-0-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-1.js",
+
+description: "Array.prototype.map must exist as a function",
+
+test: function testcase() {
+ var f = Array.prototype.map;
+ if (typeof(f) === "function") {
+ return true;
+ }
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-2.js
new file mode 100644
index 000000000..08ce8dbe4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-2.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-0-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-0-2.js",
+
+description: "Array.prototype.map.length must be 1",
+
+test: function testcase() {
+ if (Array.prototype.map.length === 1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-1.js
new file mode 100644
index 000000000..3e8cc3ad1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-1.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-1.js",
+
+ description: "Array.prototype.map - applied to undefined",
+
+ test: function testcase() {
+ try {
+ Array.prototype.map.call(undefined); // TypeError is thrown if value is undefined
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-10.js
new file mode 100644
index 000000000..015b7ef03
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-10.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-10.js",
+
+ description: "Array.prototype.map - applied to the Math object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return ('[object Math]' === Object.prototype.toString.call(obj));
+ }
+
+ try {
+ Math.length = 1;
+ Math[0] = 1;
+ var testResult = Array.prototype.map.call(Math, callbackfn);
+ return testResult[0] === true;
+ } finally {
+ delete Math[0];
+ delete Math.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-11.js
new file mode 100644
index 000000000..24622578c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-11.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-11.js",
+
+ description: "Array.prototype.map - applied to Date object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Date;
+ }
+
+ var obj = new Date();
+ obj.length = 1;
+ obj[0] = 1;
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-12.js
new file mode 100644
index 000000000..e68bac392
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-12.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-12.js",
+
+ description: "Array.prototype.map - applied to RegExp object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof RegExp;
+ }
+
+ var obj = new RegExp();
+ obj.length = 1;
+ obj[0] = 1;
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-13.js
new file mode 100644
index 000000000..f45c5a995
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-13.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-13.js",
+
+ description: "Array.prototype.map - applied to the JSON object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return ('[object JSON]' === Object.prototype.toString.call(obj));
+ }
+
+ try {
+ JSON.length = 1;
+ JSON[0] = 1;
+ var testResult = Array.prototype.map.call(JSON, callbackfn);
+ return testResult[0] === true;
+ } finally {
+ delete JSON.length;
+ delete JSON[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-14.js
new file mode 100644
index 000000000..01f153245
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-14.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-14.js",
+
+ description: "Array.prototype.map - applied to Error object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Error;
+ }
+
+ var obj = new Error();
+ obj.length = 1;
+ obj[0] = 1;
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-15.js
new file mode 100644
index 000000000..755aaef0f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-15.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-15.js",
+
+ description: "Array.prototype.map - applied to the Arguments object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return ('[object Arguments]' === Object.prototype.toString.call(obj));
+ }
+
+ var obj = (function () {
+ return arguments;
+ }("a", "b"));
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[1] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-2.js
new file mode 100644
index 000000000..7c1745f6f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-2.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-2.js",
+
+ description: "Array.prototype.map - applied to null",
+
+ test: function testcase() {
+ try {
+ Array.prototype.map.call(null); // TypeError is thrown if value is null
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-3.js
new file mode 100644
index 000000000..fd850c51f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-3.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-3.js",
+
+ description: "Array.prototype.map - applied to boolean primitive",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Boolean;
+ }
+
+ try {
+ Boolean.prototype[0] = true;
+ Boolean.prototype.length = 1;
+
+ var testResult = Array.prototype.map.call(false, callbackfn);
+ return testResult[0] === true;
+ } finally {
+ delete Boolean.prototype[0];
+ delete Boolean.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-4.js
new file mode 100644
index 000000000..03f1bdadc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-4.js",
+
+ description: "Array.prototype.map - applied to Boolean object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Boolean;
+ }
+
+ var obj = new Boolean(true);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[0] === true && testResult[1] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-5.js
new file mode 100644
index 000000000..3c01034a2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-5.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-5.js",
+
+ description: "Array.prototype.map - applied to number primitive",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Number;
+ }
+
+ try {
+ Number.prototype[0] = 1;
+ Number.prototype.length = 1;
+
+ var testResult = Array.prototype.map.call(2.5, callbackfn);
+ return testResult[0] === true;
+ } finally {
+ delete Number.prototype[0];
+ delete Number.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-6.js
new file mode 100644
index 000000000..d52e9a86b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-6.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-6.js",
+
+ description: "Array.prototype.map - applied to Number object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Number;
+ }
+
+ var obj = new Number(-128);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[0] === true && testResult[1] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-7.js
new file mode 100644
index 000000000..21d60468b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-7.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-7.js",
+
+ description: "Array.prototype.map - applied to string primitive",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof String;
+ }
+
+ var testResult = Array.prototype.map.call("abc", callbackfn);
+
+ return testResult[0] === true && testResult[1] === true && testResult[2] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-8.js
new file mode 100644
index 000000000..81f6d7d6b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-8.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-8.js",
+
+ description: "Array.prototype.map - applied to String object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof String;
+ }
+
+ var obj = new String("abc");
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[0] === true && testResult[1] === true && testResult[2] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-9.js
new file mode 100644
index 000000000..d5a75f1a6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-9.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-1-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-1-9.js",
+
+ description: "Array.prototype.map - applied to Function object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Function;
+ }
+
+ var obj = function (a, b) {
+ return a + b;
+ };
+ obj[0] = 11;
+ obj[1] = 9;
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[0] === true && testResult[1] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-1.js
new file mode 100644
index 000000000..223bf977a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-1.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-1.js",
+
+ description: "Array.prototype.map - applied to Array-like object when 'length' is an own data property",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: 2
+ };
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-10.js
new file mode 100644
index 000000000..6b06e7fb9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-10.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-10.js",
+
+ description: "Array.prototype.map - applied to Array-like object, 'length' is an inherited accessor property",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var testResult = Array.prototype.map.call(child, callbackfn);
+
+ return testResult.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-11.js
new file mode 100644
index 000000000..b9ba4484b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-11.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-11.js",
+
+ description: "Array.prototype.map - applied to Array-like object when 'length' is an own accessor property without a get function",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 12
+ };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return 0 === testResult.length;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-12.js
new file mode 100644
index 000000000..d2085ea59
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-12.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-12.js",
+
+ description: "Array.prototype.map - applied to the Array-like object when 'length' is own accessor property without a get function that overrides an inherited accessor property",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ try {
+ Object.defineProperty(Object.prototype, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var obj = { 0: 12, 1: 11 };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+ return testResult.length === 0;
+ } finally {
+ delete Object.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-13.js
new file mode 100644
index 000000000..09079f002
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-13.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-13.js",
+
+ description: "Array.prototype.map - applied to the Array-like object when 'length' is inherited accessor property without a get function",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 11;
+ child[1] = 12;
+
+ var testResult = Array.prototype.map.call(child, callbackfn);
+
+ return 0 === testResult.length;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-14.js
new file mode 100644
index 000000000..0fbdd2d4e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-14.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-14.js",
+
+ description: "Array.prototype.map - applied to the Array-like object that 'length' property doesn't exist",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = { 0: 11, 1: 12 };
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return 0 === testResult.length;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-15.js
new file mode 100644
index 000000000..1b1e250e2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-15.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-15.js",
+
+ description: "Array.prototype.map - when 'length' is property of the global object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 12;
+ fnGlobalObject()[1] = 11;
+ fnGlobalObject()[2] = 9;
+ fnGlobalObject().length = 2;
+ var testResult = Array.prototype.map.call(fnGlobalObject(), callbackfn);
+ return testResult.length === 2;
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-17.js
new file mode 100644
index 000000000..19ed877c4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-17.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-17.js",
+
+ description: "Array.prototype.map - applied to Arguments object, which implements its own property get method",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.map.call(arguments, callbackfn);
+ };
+
+ var testResult = func(12, 11);
+
+ return testResult.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-18.js
new file mode 100644
index 000000000..9a4f757ae
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-18.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-18.js",
+
+ description: "Array.prototype.map - applied to String object, which implements its own property get method",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return parseInt(val, 10) > 1;
+ }
+
+ var str = new String("432");
+ try {
+ String.prototype[3] = "1";
+ var testResult = Array.prototype.map.call(str, callbackfn);
+
+ return 3 === testResult.length;
+ } finally {
+ delete String.prototype[3];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-19.js
new file mode 100644
index 000000000..d9cef9f13
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-19.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-19.js",
+
+ description: "Array.prototype.map - applied to Function object, which implements its own property get method",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var fun = function (a, b) {
+ return a + b;
+ };
+ fun[0] = 12;
+ fun[1] = 11;
+ fun[2] = 9;
+
+ var testResult = Array.prototype.map.call(fun, callbackfn);
+
+ return 2 === testResult.length;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-2.js
new file mode 100644
index 000000000..d303ae8a5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-2.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-2.js",
+
+ description: "Array.prototype.map - when 'length' is own data property on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var testResult = [12, 11].map(callbackfn);
+ return testResult.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-3.js
new file mode 100644
index 000000000..f411682c4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-3.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-3.js",
+
+ description: "Array.prototype.map - applied to Array-like object, 'length' is an own data property that overrides an inherited data property",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var testResult = Array.prototype.map.call(child, callbackfn);
+
+ return testResult.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-4.js
new file mode 100644
index 000000000..a81ea3b06
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-4.js",
+
+ description: "Array.prototype.map - when 'length' is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+ var arrProtoLen;
+ try {
+ arrProtoLen = Array.prototype.length;
+ Array.prototype.length = 0;
+ var testResult = [12, 11].map(callbackfn);
+ return testResult.length === 2;
+ } finally {
+ Array.prototype.length = arrProtoLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-5.js
new file mode 100644
index 000000000..64adab0ef
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-5.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-5.js",
+
+ description: "Array.prototype.map - applied to Array-like object, 'length' is an own data property that overrides an inherited accessor property",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ Object.defineProperty(child, "length", {
+ value: 2,
+ configurable: true
+ });
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var testResult = Array.prototype.map.call(child, callbackfn);
+
+ return testResult.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-6.js
new file mode 100644
index 000000000..4a633d983
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-6.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-6.js",
+
+ description: "Array.prototype.map - applied to Array-like object, 'length' is an inherited data property",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var proto = { length: 2 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var testResult = Array.prototype.map.call(child, callbackfn);
+
+ return testResult.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-7.js
new file mode 100644
index 000000000..ce0fc080a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-7.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-7.js",
+
+ description: "Array.prototype.map - applied to Array-like object, 'length' is an own accessor property",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ obj[0] = 12;
+ obj[1] = 11;
+ obj[2] = 9;
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-8.js
new file mode 100644
index 000000000..6c85482c5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-8.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-8.js",
+
+ description: "Array.prototype.map - applied to Array-like object, 'length' is an own accessor property that overrides an inherited data property",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var testResult = Array.prototype.map.call(child, callbackfn);
+
+ return testResult.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-9.js
new file mode 100644
index 000000000..0a5c0ad4c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-9.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-2-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-2-9.js",
+
+ description: "Array.prototype.map - applied to Array-like object when 'length' is an own accessor property that overrides an inherited accessor property",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var testResult = Array.prototype.map.call(child, callbackfn);
+
+ return testResult.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-1.js
new file mode 100644
index 000000000..67682d1d0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-1.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-1.js",
+
+ description: "Array.prototype.map - value of 'length' is undefined",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = { length: undefined };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-10.js
new file mode 100644
index 000000000..a5ed00e3e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-10.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-10.js",
+
+ description: "Array.prototype.map - value of 'length' is a number (value is NaN)",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var obj = { 0: 9, length: NaN };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-11.js
new file mode 100644
index 000000000..e296e89aa
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-11.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-11.js",
+
+ description: "Array.prototype.map - 'length' is a string containing a positive number",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var obj = { 0: 11, 1: 9, 2: 12, length: "2" };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-12.js
new file mode 100644
index 000000000..2046e154c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-12.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-12.js",
+
+ description: "Array.prototype.map - 'length' is a string containing a negative number",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var obj = { 0: 11, 1: 9, 2: 12, length: "-4294967294" };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-13.js
new file mode 100644
index 000000000..40beab148
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-13.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-13.js",
+
+ description: "Array.prototype.map - value of 'length' is string that is able to convert to number primitive (value is a decimal number)",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var obj = { 0: 11, 1: 9, 2: 12, length: "2.5" };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-14.js
new file mode 100644
index 000000000..ccbfbdecd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-14.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-14.js",
+
+ description: "Array.prototype.map - 'length' is a string containing Infinity",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var obj = { 0: 9, length: "Infinity" };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-15.js
new file mode 100644
index 000000000..a112ea398
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-15.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-15.js",
+
+ description: "Array.prototype.map - 'length' is a string containing an exponential number",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var obj = { 0: 11, 1: 9, 2: 12, length: "2E0" };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-16.js
new file mode 100644
index 000000000..d9e55b17e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-16.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-16.js",
+
+ description: "Array.prototype.map - 'length' is a string containing a hex number",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var obj = { 0: 11, 1: 9, 2: 12, length: "0x0002" };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-17.js
new file mode 100644
index 000000000..83316c1ce
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-17.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-17.js",
+
+ description: "Array.prototype.map - when 'length' is a string containing a number with leading zeros",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var obj = { 0: 11, 1: 9, 2: 12, length: "0002.00" };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-18.js
new file mode 100644
index 000000000..5041e9563
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-18.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-18.js",
+
+ description: "Array.prototype.map - value of 'length' is a string that can't convert to a number",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = { length: "asdf!_" };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-19.js
new file mode 100644
index 000000000..ee2ac040c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-19.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-19.js",
+
+ description: "Array.prototype.map - value of 'length' is an Object which has an own toString method",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 9,
+
+ length: {
+ toString: function () {
+ return '2';
+ }
+ }
+ };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-2.js
new file mode 100644
index 000000000..449d7e9ef
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-2.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-2.js",
+
+ description: "Array.prototype.map on an Array-like object if 'length' is 1 (length overridden to true(type conversion))",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = { 0: 11, length: true };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-20.js
new file mode 100644
index 000000000..2e4cc8c73
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-20.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-20.js",
+
+ description: "Array.prototype.map - value of 'length' is an Object which has an own valueOf method",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 9,
+
+ length: {
+ valueOf: function () {
+ return 2;
+ }
+ }
+ };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-21.js
new file mode 100644
index 000000000..28f96832d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-21.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-21.js",
+
+ description: "Array.prototype.map - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var firstStepOccured = false;
+ var secondStepOccured = false;
+ var obj = {
+ 0: 11,
+ 1: 9,
+
+ length: {
+ valueOf: function () {
+ firstStepOccured = true;
+ return {};
+ },
+ toString: function () {
+ secondStepOccured = true;
+ return '2';
+ }
+ }
+ };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 2 && firstStepOccured && secondStepOccured;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-22.js
new file mode 100644
index 000000000..f7242b3e7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-22.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-22.js",
+
+ description: "Array.prototype.map throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 12,
+
+ length: {
+ valueOf: function () {
+ return {};
+ },
+ toString: function () {
+ return {};
+ }
+ }
+ };
+
+ try {
+ Array.prototype.map.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-23.js
new file mode 100644
index 000000000..0066c7aca
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-23.js
@@ -0,0 +1,72 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-23.js",
+
+ description: "Array.prototype.map uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var valueOfAccessed = false;
+ var toStringAccessed = false;
+
+ var proto = {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ child.toString = function () {
+ toStringAccessed = true;
+ return '1';
+ };
+
+ var obj = {
+ 0: 11,
+ 1: 9,
+ length: child
+ };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 2 && valueOfAccessed && !toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-24.js
new file mode 100644
index 000000000..0cb3bf780
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-24.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-24.js",
+
+ description: "Array.prototype.map - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 9,
+ length: 2.685
+ };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-25.js
new file mode 100644
index 000000000..dd790674f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-25.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-25.js",
+
+ description: "Array.prototype.map - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 9,
+ length: -4294967294.5
+ };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-28.js
new file mode 100644
index 000000000..80c3e23c0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-28.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-28.js",
+
+ description: "Array.prototype.map - value of 'length' is boundary value (2^32)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = {
+ 0: 12,
+ length: 4294967296
+ };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-29.js
new file mode 100644
index 000000000..3fde2b7fc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-29.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-29.js",
+
+ description: "Array.prototype.map - value of 'length' is boundary value (2^32 + 1)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 9,
+ length: 4294967297
+ };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+ return newArr.length === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-3.js
new file mode 100644
index 000000000..b6e42dbcd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-3.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-3.js",
+
+ description: "Array.prototype.map - value of 'length' is a number (value is 0)",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = { 0: 11, length: 0 };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-4.js
new file mode 100644
index 000000000..4171895ec
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-4.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-4.js",
+
+ description: "Array.prototype.map - value of 'length' is a number (value is +0)",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = { 0: 11, length: +0 };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-5.js
new file mode 100644
index 000000000..5b8a9d8cf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-5.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-5.js",
+
+ description: "Array.prototype.map - value of 'length' is a number (value is -0)",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = { 0: 11, length: -0 };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-6.js
new file mode 100644
index 000000000..6d374e4e2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-6.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-6.js",
+
+ description: "Array.prototype.map - 'length' is a string containing a positive number",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = { 0: 10, 1: 12, 2: 9, length: 2 };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-7.js
new file mode 100644
index 000000000..a61ae20a5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-7.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-7.js",
+
+ description: "Array.prototype.map - 'length' is a string containing a negative number",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = { 0: 10, 1: 12, 2: 9, length: -4294967294 };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-8.js
new file mode 100644
index 000000000..dfc8c5782
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-8.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-8.js",
+
+ description: "Array.prototype.map - value of 'length' is a number (value is Infinity)",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var obj = { 0: 9, length: Infinity };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-9.js
new file mode 100644
index 000000000..29c5ff3d0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-9.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-3-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-3-9.js",
+
+ description: "Array.prototype.map - value of 'length' is a number (value is -Infinity)",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val < 10;
+ }
+
+ var obj = { 0: 9, length: -Infinity };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-1.js
new file mode 100644
index 000000000..59f419c9f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-1.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-4-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-1.js",
+
+description: "Array.prototype.map throws TypeError if callbackfn is undefined",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.map();
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-10.js
new file mode 100644
index 000000000..af6ceb171
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-10.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-4-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-10.js",
+
+ description: "Array.prototype.map - the exception is not thrown if exception was thrown by step 2",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.map.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-11.js
new file mode 100644
index 000000000..6689fd066
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-11.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-4-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-11.js",
+
+ description: "Array.prototype.map - the exception is not thrown if exception was thrown by step 3",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.map.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-12.js
new file mode 100644
index 000000000..02a630335
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-12.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-4-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-12.js",
+
+ description: "Array.prototype.map - 'callbackfn' is a function",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var testResult = [11, 9].map(callbackfn);
+ return testResult.length === 2 && testResult[0] === true && testResult[1] === false;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-15.js
new file mode 100644
index 000000000..d53672ad7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-15.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-4-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-15.js",
+
+ description: "Array.prototype.map - calling with no callbackfn is the same as passing undefined for callbackfn",
+
+ test: function testcase() {
+
+ var obj = { 10: 10 };
+ var lengthAccessed = false;
+ var loopAccessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ lengthAccessed = true;
+ return 20;
+ },
+ configurable: true
+ });
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ loopAccessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.map.call(obj);
+ return false;
+ } catch (e) {
+ return e instanceof TypeError && lengthAccessed && !loopAccessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-2.js
new file mode 100644
index 000000000..9bdd3af46
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-2.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-4-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-2.js",
+
+description: "Array.prototype.map throws ReferenceError if callbackfn is unreferenced",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.map(foo);
+ }
+ catch(e) {
+ if(e instanceof ReferenceError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-3.js
new file mode 100644
index 000000000..0b736c634
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-3.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-4-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-3.js",
+
+description: "Array.prototype.map throws TypeError if callbackfn is null",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.map(null);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-4.js
new file mode 100644
index 000000000..df24b6d41
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-4.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-4-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-4.js",
+
+description: "Array.prototype.map throws TypeError if callbackfn is boolean",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.map(true);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-5.js
new file mode 100644
index 000000000..31f84a4bf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-5.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-4-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-5.js",
+
+description: "Array.prototype.map throws TypeError if callbackfn is number",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.map(5);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-6.js
new file mode 100644
index 000000000..82e425ee8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-6.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-4-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-6.js",
+
+description: "Array.prototype.map throws TypeError if callbackfn is string",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.map("abc");
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-7.js
new file mode 100644
index 000000000..bd7f15aa3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-7.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-4-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-7.js",
+
+description: "Array.prototype.map throws TypeError if callbackfn is Object without Call internal method",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.map(new Object());
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-8.js
new file mode 100644
index 000000000..e69a1dcbe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-8.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-4-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-8.js",
+
+ description: "Array.prototype.map - Side effects produced by step 2 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.map.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-9.js
new file mode 100644
index 000000000..e717e1b2a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-9.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-4-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-4-9.js",
+
+ description: "Array.prototype.map - Side effects produced by step 3 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "2";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.map.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1-s.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1-s.js
new file mode 100644
index 000000000..a4ec3f86a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1-s.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2010 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-5-1-s",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1-s.js",
+
+description: "Array.prototype.map - thisArg not passed to strict callbackfn",
+
+test: function testcase() {
+ var innerThisCorrect = false;
+
+ function callbackfn(val, idx, obj) {
+ "use strict";
+ innerThisCorrect = this===undefined;
+ return true;
+ }
+
+ [1].map(callbackfn);
+ return innerThisCorrect;
+ },
+
+strict:1,
+
+precondition: function prereq() {
+ return fnSupportsStrict() && fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1.js
new file mode 100644
index 000000000..1a5643383
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-5-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-1.js",
+
+description: "Array.prototype.map - thisArg not passed",
+
+test: function testcase() {
+ try {
+ fnGlobalObject()._15_4_4_19_5_1 = true;
+ var _15_4_4_19_5_1 = false;
+
+ function callbackfn(val, idx, obj) {
+ return this._15_4_4_19_5_1;
+ }
+ var srcArr = [1];
+ var resArr = srcArr.map(callbackfn);
+ if( resArr[0] === true)
+ return true;
+
+ return false;
+ }
+ finally {
+ delete fnGlobalObject()._15_4_4_19_5_1;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-10.js
new file mode 100644
index 000000000..38dc46663
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-10.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-10.js",
+
+ description: "Array.prototype.map - Array object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objArray = new Array(2);
+
+ function callbackfn(val, idx, obj) {
+ return this === objArray;
+ }
+
+ var testResult = [11].map(callbackfn, objArray);
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-11.js
new file mode 100644
index 000000000..89dce5548
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-11.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-11.js",
+
+ description: "Array.prototype.map - String object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objString = new String();
+
+ function callbackfn(val, idx, obj) {
+ return this === objString;
+ }
+
+ var testResult = [11].map(callbackfn, objString);
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-12.js
new file mode 100644
index 000000000..323ee9cbd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-12.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-12.js",
+
+ description: "Array.prototype.map - Boolean object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objBoolean = new Boolean();
+
+ function callbackfn(val, idx, obj) {
+ return this === objBoolean;
+ }
+
+ var testResult = [11].map(callbackfn, objBoolean);
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-13.js
new file mode 100644
index 000000000..680ba439d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-13.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-13.js",
+
+ description: "Array.prototype.map - Number object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objNumber = new Number();
+
+ function callbackfn(val, idx, obj) {
+ return this === objNumber;
+ }
+
+ var testResult = [11].map(callbackfn, objNumber);
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-14.js
new file mode 100644
index 000000000..93db6d40a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-14.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-14.js",
+
+ description: "Array.prototype.map - the Math object can be used as thisArg",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this === Math;
+ }
+
+ var testResult = [11].map(callbackfn, Math);
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-15.js
new file mode 100644
index 000000000..7707ed002
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-15.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-15.js",
+
+ description: "Array.prototype.map - Date object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objDate = new Date();
+
+ function callbackfn(val, idx, obj) {
+ return this === objDate;
+ }
+
+ var testResult = [11].map(callbackfn, objDate);
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-16.js
new file mode 100644
index 000000000..b25a7a074
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-16.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-16.js",
+
+ description: "Array.prototype.map - RegExp object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objRegExp = new RegExp();
+
+ function callbackfn(val, idx, obj) {
+ return this === objRegExp;
+ }
+
+ var testResult = [11].map(callbackfn, objRegExp);
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-17.js
new file mode 100644
index 000000000..0ffb201e1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-17.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-17.js",
+
+ description: "Array.prototype.map - the JSON object can be used as thisArg",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this === JSON;
+ }
+
+ var testResult = [11].map(callbackfn, JSON);
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-18.js
new file mode 100644
index 000000000..86807fefe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-18.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-18.js",
+
+ description: "Array.prototype.map - Error object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objError = new RangeError();
+
+ function callbackfn(val, idx, obj) {
+ return this === objError;
+ }
+
+ var testResult = [11].map(callbackfn, objError);
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-19.js
new file mode 100644
index 000000000..544e7c76c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-19.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-19.js",
+
+ description: "Array.prototype.map - the Arguments object can be used as thisArg",
+
+ test: function testcase() {
+
+ var arg;
+
+ function callbackfn(val, idx, obj) {
+ return this === arg;
+ }
+
+ arg = (function () {
+ return arguments;
+ }(1, 2, 3));
+
+ var testResult = [11].map(callbackfn, arg);
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-2.js
new file mode 100644
index 000000000..b7911bd59
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-2.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-5-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-2.js",
+
+description: "Array.prototype.map - thisArg is Object",
+
+test: function testcase() {
+ var res = false;
+ var o = new Object();
+ o.res = true;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ var srcArr = [1];
+ var resArr = srcArr.map(callbackfn,o);
+ if( resArr[0] === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-21.js
new file mode 100644
index 000000000..4ef40deaf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-21.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-21.js",
+
+ description: "Array.prototype.map - the global object can be used as thisArg",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this === fnGlobalObject();
+ }
+
+ var testResult = [11].map(callbackfn, fnGlobalObject());
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-22.js
new file mode 100644
index 000000000..e9d3f4a1d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-22.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-22.js",
+
+ description: "Array.prototype.map - boolean primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.valueOf() === false;
+ }
+
+ var testResult = [11].map(callbackfn, false);
+ return testResult[0] === true;
+ },
+
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-23.js
new file mode 100644
index 000000000..45163269e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-23.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-23.js",
+
+ description: "Array.prototype.map - number primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.valueOf() === 101;
+ }
+
+ var testResult = [11].map(callbackfn, 101);
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-24.js
new file mode 100644
index 000000000..a9dd86c60
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-24.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-24.js",
+
+ description: "Array.prototype.map - string primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.valueOf() === "abc";
+ }
+
+ var testResult = [11].map(callbackfn, "abc");
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-3.js
new file mode 100644
index 000000000..4c430a6ac
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-5-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-3.js",
+
+description: "Array.prototype.map - thisArg is Array",
+
+test: function testcase() {
+ var res = false;
+ var a = new Array();
+ a.res = true;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ var srcArr = [1];
+ var resArr = srcArr.map(callbackfn,a);
+ if( resArr[0] === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-4.js
new file mode 100644
index 000000000..cbcc3626f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-5-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-4.js",
+
+description: "Array.prototype.map - thisArg is object from object template(prototype)",
+
+test: function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ foo.prototype.res = true;
+ var f = new foo();
+
+ var srcArr = [1];
+ var resArr = srcArr.map(callbackfn,f);
+ if( resArr[0] === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-5.js
new file mode 100644
index 000000000..f27a3ad72
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-5.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-5-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-5.js",
+
+description: "Array.prototype.map - thisArg is object from object template",
+
+test: function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ var f = new foo();
+ f.res = true;
+
+ var srcArr = [1];
+ var resArr = srcArr.map(callbackfn,f);
+ if( resArr[0] === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-6.js
new file mode 100644
index 000000000..5eb524f1f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-6.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-5-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-6.js",
+
+description: "Array.prototype.map - thisArg is function",
+
+test: function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ foo.res = true;
+
+ var srcArr = [1];
+ var resArr = srcArr.map(callbackfn,foo);
+ if( resArr[0] === true)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-7.js
new file mode 100644
index 000000000..ebf820e23
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-7.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-7.js",
+
+ description: "Array.prototype.map - built-in functions can be used as thisArg",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this === eval;
+ }
+
+ var testResult = [11].map(callbackfn, eval);
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-9.js
new file mode 100644
index 000000000..595ffa865
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-9.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-5-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-5-9.js",
+
+ description: "Array.prototype.map - Function object can be used as thisArg",
+
+ test: function testcase() {
+
+ var objFunction = function () { };
+
+ function callbackfn(val, idx, obj) {
+ return this === objFunction;
+ }
+
+ var testResult = [11].map(callbackfn, objFunction);
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-1.js
new file mode 100644
index 000000000..e30896cc0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-1.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-6-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-1.js",
+
+ description: "Array.prototype.map - Array.isArray returns true when input argument is the ourput array",
+
+ test: function testcase() {
+
+ var newArr = [11].map(function () { });
+
+ return Array.isArray(newArr);
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Array.isArray);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-2.js
new file mode 100644
index 000000000..b4b816ce2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-2.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 1909 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-6-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-6-2.js",
+
+ description: "Array.prototype.map - the returned array is instanceof Array",
+
+ test: function testcase() {
+
+ var newArr = [11].map(function () { });
+
+ return newArr instanceof Array;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-1.js
new file mode 100644
index 000000000..c0311076c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-1.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-8-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-1.js",
+
+description: "Array.prototype.map doesn't consider new elements added to array after it is called",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ srcArr[2] = 3;
+ srcArr[5] = 6;
+ return 1;
+ }
+
+ var srcArr = [1,2,,4,5];
+ var resArr = srcArr.map(callbackfn);
+ if(resArr.length === 5)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-2.js
new file mode 100644
index 000000000..102d11c13
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-8-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-2.js",
+
+description: "Array.prototype.map considers new value of elements in array after it is called",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ srcArr[4] = -1;
+ if(val > 0)
+ return 1;
+ else
+ return 0;
+ }
+
+ var srcArr = [1,2,3,4,5];
+ var resArr = srcArr.map(callbackfn);
+ if(resArr.length === 5 && resArr[4] === 0)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-3.js
new file mode 100644
index 000000000..03ea75e66
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-3.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-8-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-3.js",
+
+description: "Array.prototype.map doesn't visit deleted elements in array after the call",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ delete srcArr[4];
+ if(val > 0)
+ return 1;
+ else
+ return 0;
+
+ }
+
+ var srcArr = [1,2,3,4,5];
+ var resArr = srcArr.map(callbackfn);
+ if(resArr.length === 5 && resArr[4] === undefined)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-4.js
new file mode 100644
index 000000000..a869563d3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-4.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-8-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-4.js",
+
+description: "Array.prototype.map doesn't visit deleted elements when Array.length is decreased",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ srcArr.length = 2;
+ callCnt++;
+ return 1;
+ }
+
+ var srcArr = [1,2,3,4,5];
+ var resArr = srcArr.map(callbackfn);
+ if(resArr.length === 5 && callCnt === 2 && resArr[2] === undefined)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-5.js
new file mode 100644
index 000000000..fa2e5842c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-5.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-8-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-5.js",
+
+description: "Array.prototype.map doesn't consider newly added elements in sparse array",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ srcArr[1000] = 3;
+ callCnt++;
+ return val;
+ }
+
+ var srcArr = new Array(10);
+ srcArr[1] = 1;
+ srcArr[2] = 2;
+ var resArr = srcArr.map(callbackfn);
+ if( resArr.length === 10 && callCnt === 2)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-6.js
new file mode 100644
index 000000000..2bb2814cb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-6.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-8-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-6.js",
+
+description: "Array.prototype.map visits deleted element in array after the call when same index is also present in prototype",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ delete srcArr[4];
+ if(val > 0)
+ return 1;
+ else
+ return 0;
+
+ }
+
+ Array.prototype[4] = 5;
+ var srcArr = [1,2,3,4,5];
+ var resArr = srcArr.map(callbackfn);
+ delete Array.prototype[4];
+ if(resArr.length === 5 && resArr[4] === 1)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-7.js
new file mode 100644
index 000000000..284c5f5cb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-7.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.19-8-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-7.js",
+
+ description: "Array.prototype.map successful to delete the object in callbackfn",
+
+ test: function testcase() {
+ var obj = {};
+ obj.srcArr = [1, 2, 3, 4, 5];
+
+ function callbackfn(val, idx, obj) {
+ delete obj.srcArr;
+ if (val > 0)
+ return 1;
+ else
+ return 0;
+ }
+
+ var resArr = obj.srcArr.map(callbackfn);
+ return resArr.toString() === "1,1,1,1,1" && !obj.hasOwnProperty("arr");
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-8.js
new file mode 100644
index 000000000..e62092357
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-8.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-8.js",
+
+ description: "Array.prototype.map - no observable effects occur if length is 0 on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, 1: 12, length: 0 };
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult.length === 0 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-9.js
new file mode 100644
index 000000000..d792b528d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-9.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-9.js",
+
+ description: "Array.prototype.map - modifications to length don't change number of iterations on an Array",
+
+ test: function testcase() {
+ var called = 0;
+ function callbackfn(val, idx, obj) {
+ called += 1;
+ return val > 10;
+ }
+
+ var arr = [9, , 12];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 8;
+ },
+ configurable: true
+ });
+
+ var testResult = arr.map(callbackfn);
+
+ return testResult.length === 3 && called === 2 && typeof testResult[2] === "undefined";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-1.js
new file mode 100644
index 000000000..322d42147
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-1.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-8-b-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-1.js",
+
+description: "Array.prototype.map - callbackfn not called for indexes never been assigned values",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ return 1;
+ }
+
+ var srcArr = new Array(10);
+ srcArr[1] = undefined; //explicitly assigning a value
+ var resArr = srcArr.map(callbackfn);
+ if( resArr.length === 10 && callCnt === 1)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-10.js
new file mode 100644
index 000000000..00d5c7efc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-10.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-b-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-10.js",
+
+ description: "Array.prototype.map - deleting property of prototype causes prototype index property not to be visited on an Array-like Object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return idx === 1 && typeof val === "undefined";
+ }
+ var obj = { 2: 2, length: 20 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete Object.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+ return testResult.length === 20 && typeof testResult[1] === "undefined";
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-11.js
new file mode 100644
index 000000000..3f79e3abf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-11.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-b-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-11.js",
+
+ description: "Array.prototype.map - deleting property of prototype causes prototype index property not to be visited on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return idx === 1 && typeof val === "undefined";
+ }
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete Array.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ var testResult = arr.map(callbackfn);
+ return testResult.length === 3 && typeof testResult[1] === "undefined";
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-12.js
new file mode 100644
index 000000000..1ba472dfe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-12.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-b-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-12.js",
+
+ description: "Array.prototype.map - deleting own property with prototype property causes prototype index property to be visited on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 3) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var obj = { 0: 0, 1: 1, 2: 2, length: 10 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 3;
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+ return testResult[1] === false;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-13.js
new file mode 100644
index 000000000..80e9be376
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-13.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-b-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-13.js",
+
+ description: "Array.prototype.map - deleting own property with prototype property causes prototype index property to be visited on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 3) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var arr = [0, 1, 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 3;
+ var testResult = arr.map(callbackfn);
+ return testResult[1] === false;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-14.js
new file mode 100644
index 000000000..e231f52c4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-14.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-b-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-14.js",
+
+ description: "Array.prototype.map - decreasing length of array causes index property not to be visited",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return idx === 3 && typeof val === "undefined";
+ }
+
+ var arr = [0, 1, 2, "last"];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr.length = 3;
+ return 0;
+ },
+ configurable: true
+ });
+
+ var testResult = arr.map(callbackfn);
+ return typeof testResult[3] === "undefined";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-15.js
new file mode 100644
index 000000000..5b24f65bb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-15.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-b-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-15.js",
+
+ description: "Array.prototype.map - decreasing length of array with prototype property causes prototype index property to be visited",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 2 && val === "prototype") {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var arr = [0, 1, 2];
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "prototype";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ var testResult = arr.map(callbackfn);
+ return testResult.length === 3 && testResult[2] === false;
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-16.js
new file mode 100644
index 000000000..9b2daae9c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-16.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-b-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-16.js",
+
+ description: "Array.prototype.map - decreasing length of array does not delete non-configurable properties",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 2 && val === "unconfigurable") {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ var arr = [0, 1, 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "unconfigurable";
+ },
+ configurable: false
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ var testResult = arr.map(callbackfn);
+ return testResult.length === 3 && testResult[2] === false;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-2.js
new file mode 100644
index 000000000..244096ed4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-2.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.19-8-b-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-2.js",
+
+ description: "Array.prototype.map - added properties in step 2 are visible here",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 2 && val === "length") {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ obj[2] = "length";
+ return 3;
+ },
+ configurable: true
+ });
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+ return testResult[2] === false;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-3.js
new file mode 100644
index 000000000..d9c36b543
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-3.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-b-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-3.js",
+
+ description: "Array.prototype.map - deleted properties in step 2 are visible here",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 2) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var obj = { 2: 6.99, 8: 19 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ delete obj[2];
+ return 10;
+ },
+ configurable: true
+ });
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+ return typeof testResult[2] === "undefined";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-4.js
new file mode 100644
index 000000000..6f9815943
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-4.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-b-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-4.js",
+
+ description: "Array.prototype.map - properties added into own object after current position are visited on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+ return testResult[0] === true && testResult[1] === false;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-5.js
new file mode 100644
index 000000000..03960be83
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-5.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-b-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-5.js",
+
+ description: "Array.prototype.map - properties added into own object after current position are visited on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ var testResult = arr.map(callbackfn);
+ return testResult[0] === true && testResult[1] === false;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-6.js
new file mode 100644
index 000000000..66ea47041
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-6.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-b-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-6.js",
+
+ description: "Array.prototype.map - properties can be added to prototype after current position are visited on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 6.99) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+ return testResult[0] === true && testResult[1] === false;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-7.js
new file mode 100644
index 000000000..ac4fc4f84
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-7.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-b-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-7.js",
+
+ description: "Array.prototype.map - properties can be added to prototype after current position are visited on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1 && val === 6.99) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var arr = [0, , 2];
+
+ try {
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ var testResult = arr.map(callbackfn);
+ return testResult[0] === true && testResult[1] === false;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-8.js
new file mode 100644
index 000000000..4d551c4fc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-8.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-b-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-8.js",
+
+ description: "Array.prototype.map - deleting own property causes index property not to be visited on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+ return testResult[0] === true && typeof testResult[1] === "undefined";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-9.js
new file mode 100644
index 000000000..53ffa9416
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-9.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-b-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-b-9.js",
+
+ description: "Array.prototype.map - deleting own property causes index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var arr = [1, 2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "6.99";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ var testResult = arr.map(callbackfn);
+ return testResult[0] === true && typeof testResult[1] === "undefined";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-1.js
new file mode 100644
index 000000000..9134eb790
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-1.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-1.js",
+
+ description: "Array.prototype.map - element to be retrieved is own data property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = {};
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 5) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var obj = { 5: kValue, length: 100 };
+
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr[5] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-10.js
new file mode 100644
index 000000000..fab37f3d3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-10.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-10.js",
+
+ description: "Array.prototype.map - element to be retrieved is own accessor property on an Array",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ var testResult = arr.map(callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-11.js
new file mode 100644
index 000000000..6b981450b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-11.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-11.js",
+
+ description: "Array.prototype.map - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var proto = { 0: 5, length: 2 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "0", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ var testResult = Array.prototype.map.call(child, callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-12.js
new file mode 100644
index 000000000..9c4624666
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-12.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-12.js",
+
+ description: "Array.prototype.map - element to be retrieved is own accessor property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var arr = [];
+
+ try {
+ Array.prototype[0] = 11;
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ var testResult = arr.map(callbackfn);
+
+ return testResult[0] === true;
+ } finally {
+ delete Array.prototype[0];
+ }
+
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-13.js
new file mode 100644
index 000000000..677e5c08c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-13.js
@@ -0,0 +1,72 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-13.js",
+
+ description: "Array.prototype.map - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var proto = { length: 2 };
+
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return 5;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "0", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ var testResult = Array.prototype.map.call(child, callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-14.js
new file mode 100644
index 000000000..f6bbc3378
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-14.js
@@ -0,0 +1,71 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-14.js",
+
+ description: "Array.prototype.map - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var arr = [];
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ var testResult = arr.map(callbackfn);
+
+ return testResult[0] === true;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-15.js
new file mode 100644
index 000000000..db6114ad7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-15.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-15.js",
+
+ description: "Array.prototype.map - element to be retrieved is inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var proto = { length: 2 };
+
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ var testResult = Array.prototype.map.call(child, callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-16.js
new file mode 100644
index 000000000..bd1c8f634
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-16.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-16.js",
+
+ description: "Array.prototype.map - element to be retrieved is inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ var testResult = [, ].map(callbackfn);
+
+ return testResult[0] === true;
+ } finally {
+ delete Array.prototype[0];
+ }
+
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-17.js
new file mode 100644
index 000000000..8fc45d662
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-17.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-17.js",
+
+ description: "Array.prototype.map - element to be retrieved is own accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return typeof val === "undefined";
+ }
+ return false;
+ }
+
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[1] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-18.js
new file mode 100644
index 000000000..0f7668634
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-18.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-18.js",
+
+ description: "Array.prototype.map - element to be retrieved is own accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return typeof val === "undefined";
+ }
+ return false;
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var testResult = arr.map(callbackfn);
+
+ return testResult[1] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-19.js
new file mode 100644
index 000000000..cdd914f47
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-19.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-19.js",
+
+ description: "Array.prototype.map - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return typeof val === "undefined";
+ }
+ return false;
+ }
+
+ var arr = [];
+
+ try {
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 100;
+ },
+ configurable: true
+ });
+
+ var testResult = arr.map(callbackfn);
+
+ return testResult[0] === true;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-2.js
new file mode 100644
index 000000000..636dbb928
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-2.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-2.js",
+
+ description: "Array.prototype.map - element to be retrieved is own data property on an Array",
+
+ test: function testcase() {
+
+ var kValue = {};
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var arr = [kValue];
+
+ var newArr = arr.map(callbackfn);
+
+ return newArr[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-20.js
new file mode 100644
index 000000000..de49cabc2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-20.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-20.js",
+
+ description: "Array.prototype.map - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return typeof val === "undefined";
+ }
+ return false;
+ }
+
+ var proto = {};
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+
+ Object.defineProperty(child, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return 100;
+ },
+ configurable: true
+ });
+
+ var testResult = Array.prototype.map.call(child, callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-21.js
new file mode 100644
index 000000000..91641e65d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-21.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-21.js",
+
+ description: "Array.prototype.map - element to be retrieved is inherited accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return typeof val === "undefined";
+ }
+ return false;
+ }
+
+ var proto = { length: 2 };
+ Object.defineProperty(proto, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ var testResult = Array.prototype.map.call(child, callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-22.js
new file mode 100644
index 000000000..580641063
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-22.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-22.js",
+
+ description: "Array.prototype.map - element to be retrieved is inherited accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return typeof val === "undefined";
+ }
+ return false;
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ var testResult = [,].map(callbackfn);
+
+ return testResult[0] === true;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-23.js
new file mode 100644
index 000000000..9efac0c1e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-23.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-23.js",
+
+ description: "Array.prototype.map - This object is the global object which contains index property",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = kValue;
+ fnGlobalObject().length = 2;
+
+ var testResult = Array.prototype.map.call(fnGlobalObject(), callbackfn);
+
+ return testResult[0] === true;
+ } finally {
+ delete fnGlobalObject()[0];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-25.js
new file mode 100644
index 000000000..a727fccab
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-25.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-25.js",
+
+ description: "Array.prototype.map - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 9;
+ } else {
+ return false;
+ }
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.map.call(arguments, callbackfn);
+ };
+
+ var testResult = func(9);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-26.js
new file mode 100644
index 000000000..5af7c6edd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-26.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-26.js",
+
+ description: "Array.prototype.map - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 9;
+ } else if (idx === 1) {
+ return val === 11;
+ } else {
+ return false;
+ }
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.map.call(arguments, callbackfn);
+ };
+
+ var testResult = func(9, 11);
+
+ return testResult[0] === true && testResult[1] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-27.js
new file mode 100644
index 000000000..a375312ea
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-27.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-27.js",
+
+ description: "Array.prototype.map - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 9;
+ } else if (idx === 1) {
+ return val === 11;
+ } else if (idx === 2) {
+ return val === 12;
+ } else {
+ return false;
+ }
+
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.map.call(arguments, callbackfn);
+ };
+
+ var testResult = func(9, 11, 12);
+
+ return testResult[0] === true && testResult[1] === true && testResult[2] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-28.js
new file mode 100644
index 000000000..70e7785d2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-28.js
@@ -0,0 +1,74 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-28.js",
+
+ description: "Array.prototype.map - element changed by getter on previous iterations is observed on an Array",
+
+ test: function testcase() {
+
+ var preIterVisible = false;
+ var arr = [];
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 11;
+ } else if (idx === 1) {
+ return val === 9;
+ } else {
+ return false;
+ }
+ }
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ preIterVisible = true;
+ return 11;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 9;
+ } else {
+ return 11;
+ }
+ },
+ configurable: true
+ });
+
+ var testResult = arr.map(callbackfn);
+
+ return testResult[0] === true && testResult[1] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-29.js
new file mode 100644
index 000000000..d46dc0419
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-29.js
@@ -0,0 +1,74 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-29.js",
+
+ description: "Array.prototype.map - element changed by getter on previous iterations is observed on an Array-like object",
+
+ test: function testcase() {
+
+ var preIterVisible = false;
+ var obj = { length: 2 };
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 11;
+ } else if (idx === 1) {
+ return val === 9;
+ } else {
+ return false;
+ }
+ }
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ preIterVisible = true;
+ return 11;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 9;
+ } else {
+ return 11;
+ }
+ },
+ configurable: true
+ });
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[0] === true && testResult[1] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-3.js
new file mode 100644
index 000000000..db2c05c65
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-3.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-3.js",
+
+ description: "Array.prototype.map - element to be retrieved is own data property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 5) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var proto = { 5: 12, length: 10 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[5] = kValue;
+
+ var testResult = Array.prototype.map.call(child, callbackfn);
+
+ return testResult[5] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-30.js
new file mode 100644
index 000000000..3db2fc8e3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-30.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-30.js",
+
+ description: "Array.prototype.map - unhandled exceptions happened in getter terminate iteration on an Array-like object",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 5: 10, 10: 8, length: 20 };
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx > 1) {
+ accessed = true;
+ }
+ }
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ accessed = true;
+ return 100;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.map.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-31.js
new file mode 100644
index 000000000..d816f2733
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-31.js
@@ -0,0 +1,72 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-31.js",
+
+ description: "Array.prototype.map - unhandled exceptions happened in getter terminate iteration on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx > 1) {
+ accessed = true;
+ }
+ }
+
+ var arr = [];
+ arr[5] = 10;
+ arr[10] = 100;
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ accessed = true;
+ return 100;
+ },
+ configurable: true
+ });
+
+ try {
+ arr.map(callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-4.js
new file mode 100644
index 000000000..eedf44b5d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-4.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-4.js",
+
+ description: "Array.prototype.map - element to be retrieved is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ try {
+ Array.prototype[0] = 11;
+
+ var testResult = [kValue].map(callbackfn);
+
+ return testResult[0] === true;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-5.js
new file mode 100644
index 000000000..ae657ca85
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-5.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-5.js",
+
+ description: "Array.prototype.map - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 5) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "5", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+ Object.defineProperty(child, "5", {
+ value: kValue,
+ configurable: true
+ });
+
+ var testResult = Array.prototype.map.call(child, callbackfn);
+
+ return testResult[5] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-6.js
new file mode 100644
index 000000000..fc6778467
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-6.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-6.js",
+
+ description: "Array.prototype.map - element to be retrieved is own data property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 9;
+ },
+ configurable: true
+ });
+
+ var testResult = [kValue].map(callbackfn);
+ return testResult[0] === true;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-7.js
new file mode 100644
index 000000000..79ff2bd96
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-7.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-7.js",
+
+ description: "Array.prototype.map - element to be retrieved is inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 5) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var proto = { 5: kValue, length: 10 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ var newArr = Array.prototype.map.call(child, callbackfn);
+
+ return newArr[5] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-8.js
new file mode 100644
index 000000000..95b08cfbf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-8.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-8.js",
+
+ description: "Array.prototype.map - element to be retrieved is inherited data property on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return val === 13;
+ }
+ return false;
+ }
+
+ try {
+ Array.prototype[1] = 13;
+
+ var newArr = [, , , ].map(callbackfn);
+
+ return newArr[1] === true;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && ![, 1].hasOwnProperty(0);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-9.js
new file mode 100644
index 000000000..c1e6e9aec
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-9.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-i-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-i-9.js",
+
+ description: "Array.prototype.map - element to be retrieved is own accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = "abc";
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === kValue;
+ }
+ return false;
+ }
+
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return kValue;
+ },
+ configurable: true
+ });
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-1.js
new file mode 100644
index 000000000..fa8527aa0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-1.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-8-c-ii-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-1.js",
+
+description: "Array.prototype.map - callbackfn called with correct parameters",
+
+test: function testcase() {
+
+ var bPar = true;
+ var bCalled = false;
+ function callbackfn(val, idx, obj)
+ {
+ bCalled = true;
+ if(obj[idx] !== val)
+ bPar = false;
+ }
+
+ var srcArr = [0,1,true,null,new Object(),"five"];
+ srcArr[999999] = -6.6;
+ resArr = srcArr.map(callbackfn);
+
+ if(bCalled === true && bPar === true)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-10.js
new file mode 100644
index 000000000..c1c005de4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-10.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-10.js",
+
+ description: "Array.prototype.map - callbackfn is called with 1 formal parameter",
+
+ test: function testcase() {
+
+ function callbackfn(val) {
+ return val > 10;
+ }
+
+ var testResult = [11].map(callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-11.js
new file mode 100644
index 000000000..e017cbc9b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-11.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-11.js",
+
+ description: "Array.prototype.map - callbackfn is called with 2 formal parameters",
+
+ test: function testcase() {
+ function callbackfn(val, idx) {
+ return (val > 10 && arguments[2][idx] === val);
+ }
+
+ var testResult = [11].map(callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-12.js
new file mode 100644
index 000000000..e8a2951b4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-12.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-12.js",
+
+ description: "Array.prototype.map - callbackfn is called with 3 formal parameters",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return (val > 10 && obj[idx] === val);
+ }
+
+ var testResult = [11].map(callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-13.js
new file mode 100644
index 000000000..110bea8ef
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-13.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-13.js",
+
+ description: "Array.prototype.map - callbackfn that uses arguments object to get parameter value",
+
+ test: function testcase() {
+
+ function callbackfn() {
+ return arguments[2][arguments[1]] === arguments[0];
+ }
+
+ var testResult = [11].map(callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-16.js
new file mode 100644
index 000000000..5b250a8fd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-16.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-16.js",
+
+ description: "Array.prototype.map - 'this' object when T is not an object (T is a boolean primitive)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.valueOf() === false;
+ }
+
+ var obj = { 0: 11, length: 2 };
+
+ var testResult = Array.prototype.map.call(obj, callbackfn, false);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-17.js
new file mode 100644
index 000000000..c8e66b10e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-17.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-17.js",
+
+ description: "Array.prototype.map - 'this' object when T is not an object (T is a number)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.valueOf() === 5;
+ }
+
+ var obj = { 0: 11, length: 2 };
+
+ var testResult = Array.prototype.map.call(obj, callbackfn, 5);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-18.js
new file mode 100644
index 000000000..b3432f5ff
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-18.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-18.js",
+
+ description: "Array.prototype.map - 'this' object when T is not an object (T is a string primitive)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.valueOf() === "hello!";
+ }
+
+ var obj = { 0: 11, length: 2 };
+
+ var testResult = Array.prototype.map.call(obj, callbackfn, "hello!");
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-19.js
new file mode 100644
index 000000000..a18357654
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-19.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-19.js",
+
+ description: "Array.prototype.map - non-indexed properties are not called.",
+
+ test: function testcase() {
+
+ var called = 0;
+ var result = false;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ if (val === 11) {
+ result = true;
+ }
+ return true;
+ }
+
+ var obj = { 0: 9, non_index_property: 11, length: 20 };
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return !result && testResult[0] === true && called === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-2.js
new file mode 100644
index 000000000..5f2db641e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-2.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-8-c-ii-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-2.js",
+
+description: "Array.prototype.map - callbackfn takes 3 arguments",
+
+test: function testcase() {
+
+ var parCnt = 3;
+ var bCalled = false
+ function callbackfn(val, idx, obj)
+ {
+ bCalled = true;
+ if(arguments.length !== 3)
+ parCnt = arguments.length; //verify if callbackfn was called with 3 parameters
+ }
+
+ var srcArr = [0,1,2,3,4,5,6,7,8,9];
+ var resArr = srcArr.map(callbackfn);
+ if(bCalled === true && parCnt === 3)
+ return true;
+
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-20.js
new file mode 100644
index 000000000..cd6004f1a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-20.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-20.js",
+
+ description: "Array.prototype.map - callbackfn called with correct parameters (thisArg is correct)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.threshold === 10;
+ }
+
+ var thisArg = { threshold: 10 };
+
+ var obj = { 0: 11, 1: 9, length: 2 };
+
+ var testResult = Array.prototype.map.call(obj, callbackfn, thisArg);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-21.js
new file mode 100644
index 000000000..1e7419a90
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-21.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-21.js",
+
+ description: "Array.prototype.map - callbackfn called with correct parameters (kValue is correct)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 11;
+ }
+
+ if (idx === 1) {
+ return val === 12;
+ }
+
+ return false;
+ }
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[0] === true && testResult[1] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-22.js
new file mode 100644
index 000000000..5cbc0f152
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-22.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-22.js",
+
+ description: "Array.prototype.map - callbackfn called with correct parameters (the index k is correct)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (val === 11) {
+ return idx === 0;
+ }
+
+ if (val === 12) {
+ return idx === 1;
+ }
+
+ return false;
+ }
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[0] === true && testResult[1] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-23.js
new file mode 100644
index 000000000..dffc20513
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-23.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-23.js",
+
+ description: "Array.prototype.map - callbackfn called with correct parameters (this object O is correct)",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, length: 2 };
+
+ function callbackfn(val, idx, o) {
+ return obj === o;
+ }
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-4.js
new file mode 100644
index 000000000..439857998
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-4.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-4.js",
+
+ description: "Array.prototype.map - k values are passed in acending numeric order",
+
+ test: function testcase() {
+
+ var arr = [0, 1, 2, 3, 4, 5];
+ var lastIdx = 0;
+ var called = 0;
+ var result = true;
+ function callbackfn(val, idx, o) {
+ called++;
+ if (lastIdx !== idx) {
+ result = false;
+ } else {
+ lastIdx++;
+ }
+ }
+
+ arr.map(callbackfn);
+ return result && arr.length === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-5.js
new file mode 100644
index 000000000..00facf8dd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-5.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-5.js",
+
+ description: "Array.prototype.map - k values are accessed during each iteration and not prior to starting the loop.",
+
+ test: function testcase() {
+
+ var kIndex = [];
+
+ //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time.
+ function callbackfn(val, idx, obj) {
+ //Each position should be visited one time, which means k is accessed one time during iterations.
+ if (typeof kIndex[idx] === "undefined") {
+ //when current position is visited, its previous index should has been visited.
+ if (idx !== 0 && typeof kIndex[idx - 1] === "undefined") {
+ return true;
+ }
+ kIndex[idx] = 1;
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ var testResult = [11, 12, 13, 14].map(callbackfn);
+
+ return testResult.length === 4 && testResult[0] === false &&
+ testResult[1] === false && testResult[2] === false &&
+ testResult[3] === false;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-6.js
new file mode 100644
index 000000000..e51f31efc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-6.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-6.js",
+
+ description: "Array.prototype.map - arguments to callbackfn are self consistent.",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, length: 1 };
+ var thisArg = {};
+
+ function callbackfn() {
+ return this === thisArg &&
+ arguments[0] === 11 &&
+ arguments[1] === 0 &&
+ arguments[2] === obj;
+ }
+
+ var testResult = Array.prototype.map.call(obj, callbackfn, thisArg);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-7.js
new file mode 100644
index 000000000..ba2b5a513
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-7.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-7.js",
+
+ description: "Array.prototype.map - unhandled exceptions happened in callbackfn terminate iteration",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ if (idx > 0) {
+ accessed = true;
+ }
+ if (idx === 0) {
+ throw new Error("Exception occurred in callbackfn");
+ }
+ }
+
+ var obj = { 0: 11, 4: 10, 10: 8, length: 20 };
+
+ try {
+ Array.prototype.map.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return ex instanceof Error && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-8.js
new file mode 100644
index 000000000..3107a4c0c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-8.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-8.js",
+
+ description: "Array.prototype.map - element changed by callbackfn on previous iterations is observed",
+
+ test: function testcase() {
+
+ var obj = { 0: 9, 1: 12, length: 2 };
+
+ function callbackfn(val, idx, o) {
+ if (idx === 0) {
+ obj[idx + 1] = 8;
+ }
+ return val > 10;
+ }
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult[1] === false;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-9.js
new file mode 100644
index 000000000..9775238d8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-9.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-ii-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-ii-9.js",
+
+ description: "Array.prototype.map - callbackfn with 0 formal parameter",
+
+ test: function testcase() {
+
+ function callbackfn() {
+ return true;
+ }
+
+ var testResult = [11].map(callbackfn);
+
+ return testResult[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-1.js
new file mode 100644
index 000000000..b961b3081
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-1.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-8-c-iii-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-1.js",
+
+description: "Array.prototype.map - getOwnPropertyDescriptor(all true) of returned array element",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj){
+ if(val % 2)
+ return (2 * val + 1);
+ else
+ return (val / 2);
+ }
+ var srcArr = [0,1,2,3,4];
+ var resArr = srcArr.map(callbackfn);
+ if (resArr.length > 0){
+ var desc = Object.getOwnPropertyDescriptor(resArr, 1)
+ if(desc.value === 3 && //srcArr[1] = 2*1+1 = 3
+ desc.writable === true &&
+ desc.enumerable === true &&
+ desc.configurable === true){
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-2.js
new file mode 100644
index 000000000..8a18f7669
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-2.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-iii-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-2.js",
+
+ description: "Array.prototype.map - value of returned array element equals to 'mappedValue'",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val;
+ }
+
+ var obj = { 0: 11, 1: 9, length: 2 };
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ return newArr[0] === obj[0] && newArr[1] === obj[1];
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-3.js
new file mode 100644
index 000000000..8da47ea9f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-3.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-iii-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-3.js",
+
+ description: "Array.prototype.map - value of returned array element can be overwritten",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return 11;
+ }
+
+ var obj = { 0: 11, 1: 9, length: 2 };
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ try {
+ var tempVal = newArr[1];
+ newArr[1] += 1;
+ return newArr[1] !== tempVal;
+ } catch (ex) {
+ return false;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-4.js
new file mode 100644
index 000000000..0c3b2bbdf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-4.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-iii-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-4.js",
+
+ description: "Array.prototype.map - value of returned array element can be enumerated",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, length: 2 };
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ var prop;
+ var enumerable = false;
+ for (prop in newArr) {
+ if (newArr.hasOwnProperty(prop)) {
+ if (prop === "0") {
+ enumerable = true;
+ }
+ }
+ }
+
+ return enumerable;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-5.js
new file mode 100644
index 000000000..727491ea5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-5.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-8-c-iii-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-8-c-iii-5.js",
+
+ description: "Array.prototype.map - value of returned array element can be changed or deleted",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, 1: 9, length: 2 };
+ var newArr = Array.prototype.map.call(obj, callbackfn);
+
+ try {
+ var tempVal = newArr[1];
+ delete newArr[1];
+ return tempVal !== undefined && newArr[1] === undefined;
+ } catch (ex) {
+ return false;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-1.js
new file mode 100644
index 000000000..3bafa71a6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-1.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-9-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-1.js",
+
+description: "Array.prototype.map doesn't mutate the Array on which it is called on",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ return true;
+ }
+ var srcArr = [1,2,3,4,5];
+ srcArr.map(callbackfn);
+ if(srcArr[0] === 1 &&
+ srcArr[1] === 2 &&
+ srcArr[2] === 3 &&
+ srcArr[3] === 4 &&
+ srcArr[4] === 5)
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-10.js
new file mode 100644
index 000000000..11f3af5f6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-10.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-9-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-10.js",
+
+ description: "Array.prototype.map - empty array to be returned if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var Foo = function () { };
+ Foo.prototype = [1, 2, 3];
+ var obj = new Foo();
+ obj.length = {
+ valueOf: function () {
+ return 0;
+ }
+ };
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+ return testResult.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-11.js
new file mode 100644
index 000000000..5dd868fb0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-11.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.19-9-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-11.js",
+
+ description: "Array.prototype.map - returns an empty array if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString))",
+
+ test: function testcase() {
+ function Foo() { }
+ Foo.prototype = [1, 2, 3];
+
+ var f = new Foo();
+
+ var o = {
+ toString: function () {
+ return '0';
+ }
+ };
+ f.length = o;
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+
+ function cb() { }
+ var a = Array.prototype.map.call(f, cb);
+
+ if (Array.isArray(a) && a.length === 0) {
+ return true;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Array.isArray);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-12.js
new file mode 100644
index 000000000..2e4eff2c3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-12.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.19-9-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-12.js",
+
+ description: "Array.prototype.map - returns an empty array if 'length' is 0 (subclassed Array, length overridden with [])",
+
+ test: function testcase() {
+ function Foo() { }
+ Foo.prototype = [1, 2, 3];
+ var f = new Foo();
+
+ f.length = [];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ function cb() { }
+ var a = Array.prototype.map.call(f, cb);
+
+ if (Array.isArray(a) && a.length === 0) {
+ return true;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map) && fnExists(Array.isArray);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-13.js
new file mode 100644
index 000000000..4f2db4871
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-13.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-9-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-13.js",
+
+ description: "Array.prototype.map - if there are no side effects of the functions, O is unmodified",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ return val > 2;
+ }
+
+ var arr = [1, 2, 3, 4];
+
+ arr.map(callbackfn);
+
+ return 1 === arr[0] && 2 === arr[1] && 3 === arr[2] && 4 === arr[3] && 4 === called;
+
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-2.js
new file mode 100644
index 000000000..6dda78043
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-2.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-9-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-2.js",
+
+description: "Array.prototype.map returns new Array with same number of elements and values the result of callbackfn",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ return val + 10;
+ }
+ var srcArr = [1,2,3,4,5];
+ var resArr = srcArr.map(callbackfn);
+ if(resArr[0] === 11 &&
+ resArr[1] === 12 &&
+ resArr[2] === 13 &&
+ resArr[3] === 14 &&
+ resArr[4] === 15)
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-3.js
new file mode 100644
index 000000000..ea654c048
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-3.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-9-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-3.js",
+
+description: "Array.prototype.map - subclassed array when length is reduced",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 1;
+
+ function cb(){}
+ var a = f.map(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-4.js
new file mode 100644
index 000000000..678630e87
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-4.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.19-9-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-4.js",
+
+description: "Array.prototype.map doesn't visit expandos",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ }
+ var srcArr = [1,2,3,4,5];
+ srcArr["i"] = 10;
+ srcArr[true] = 11;
+
+ var resArr = srcArr.map(callbackfn);
+ if(callCnt == 5)
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-5.js
new file mode 100644
index 000000000..ef8373044
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-5.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-9-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-5.js",
+
+ description: "Array.prototype.map - empty array to be returned if 'length' is 0 (empty array)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var obj = { 0: 9, 1: 8, length: 0 };
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+
+ return testResult.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-6.js
new file mode 100644
index 000000000..5d1b27e91
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-6.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-9-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-6.js",
+
+ description: "Array.prototype.map - empty array to be returned if 'length' is 0 (subclassed Array, length overridden to null (type conversion))",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10;
+ }
+
+ var Foo = function () { };
+ Foo.prototype = [1, 2, 3];
+ var obj = new Foo();
+ obj.length = null;
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+ return testResult.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-7.js
new file mode 100644
index 000000000..ebda81970
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-7.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-9-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-7.js",
+
+ description: "Array.prototype.map - empty array to be returned if 'length' is 0 (subclassed Array, length overridden to false (type conversion))",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var Foo = function () { };
+ Foo.prototype = [1, 2, 3];
+ var obj = new Foo();
+ obj.length = false;
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+ return testResult.length === 0;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-8.js
new file mode 100644
index 000000000..ac7b3bc6b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-8.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-9-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-8.js",
+
+ description: "Array.prototype.map - empty array to be returned if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion))",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var Foo = function () { };
+ Foo.prototype = [1, 2, 3];
+ var obj = new Foo();
+ obj.length = 0;
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+ return testResult.length === 0;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-9.js
new file mode 100644
index 000000000..ec6a1b278
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-9.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.19-9-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.19/15.4.4.19-9-9.js",
+
+ description: "Array.prototype.map - empty array to be returned if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion))",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var Foo = function () { };
+ Foo.prototype = [1, 2, 3];
+ var obj = new Foo();
+ obj.length = '0';
+
+ var testResult = Array.prototype.map.call(obj, callbackfn);
+ return testResult.length === 0;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.map);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-1.js
new file mode 100644
index 000000000..2cd3adcd3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-1.js
@@ -0,0 +1,36 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-0-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-1.js",
+
+description: "Array.prototype.filter must exist as a function",
+
+test: function testcase() {
+ var f = Array.prototype.filter;
+ if (typeof(f) === "function") {
+ return true;
+ }
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-2.js
new file mode 100644
index 000000000..8c61ad004
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-2.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-0-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-0-2.js",
+
+description: "Array.prototype.filter.length must be 1",
+
+test: function testcase() {
+ if (Array.prototype.filter.length === 1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-1.js
new file mode 100644
index 000000000..50e08324a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-1.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.20-1-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-1.js",
+
+ description: "Array.prototype.filter applied to undefined throws a TypeError",
+
+ test: function testcase() {
+ try {
+ Array.prototype.filter.call(undefined); // TypeError is thrown if value is undefined
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-10.js
new file mode 100644
index 000000000..1262abd38
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-10.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-1-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-10.js",
+
+ description: "Array.prototype.filter applied to the Math object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return '[object Math]' === Object.prototype.toString.call(obj);
+ }
+
+ try {
+ Math.length = 1;
+ Math[0] = 1;
+ var newArr = Array.prototype.filter.call(Math, callbackfn);
+ return newArr[0] === 1;
+ } finally {
+ delete Math[0];
+ delete Math.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-11.js
new file mode 100644
index 000000000..d6a49dd79
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-11.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-1-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-11.js",
+
+ description: "Array.prototype.filter applied to Date object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Date;
+ }
+
+ var obj = new Date();
+ obj.length = 1;
+ obj[0] = 1;
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr[0] === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-12.js
new file mode 100644
index 000000000..b2b85be78
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-12.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-1-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-12.js",
+
+ description: "Array.prototype.filter applied to RegExp object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof RegExp;
+ }
+
+ var obj = new RegExp();
+ obj.length = 2;
+ obj[1] = true;
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr[0] === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-13.js
new file mode 100644
index 000000000..672e94c60
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-13.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-1-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-13.js",
+
+ description: "Array.prototype.filter applied to the JSON object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return '[object JSON]' === Object.prototype.toString.call(JSON);
+ }
+
+ try {
+ JSON.length = 1;
+ JSON[0] = 1;
+ var newArr = Array.prototype.filter.call(JSON, callbackfn);
+ return newArr[0] === 1;
+ } finally {
+ delete JSON.length;
+ delete JSON[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-14.js
new file mode 100644
index 000000000..368ee6e95
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-14.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.20-1-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-14.js",
+
+ description: "Array.prototype.filter applied to Error object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Error;
+ }
+
+ var obj = new Error();
+ obj.length = 1;
+ obj[0] = 1;
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr[0] === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-15.js
new file mode 100644
index 000000000..03c27ea11
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-15.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-1-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-15.js",
+
+ description: "Array.prototype.filter applied to the Arguments object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return '[object Arguments]' === Object.prototype.toString.call(obj);
+ }
+
+ var obj = (function () {
+ return arguments;
+ }("a", "b"));
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr[0] === "a" && newArr[1] === "b";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-2.js
new file mode 100644
index 000000000..62817fce4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-2.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.20-1-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-2.js",
+
+ description: "Array.prototype.filter applied to null throws a TypeError",
+
+ test: function testcase() {
+ try {
+ Array.prototype.filter.call(null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-3.js
new file mode 100644
index 000000000..04e51530f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-3.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-1-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-3.js",
+
+ description: "Array.prototype.filter applied to boolean primitive",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Boolean;
+ }
+
+ try {
+ Boolean.prototype[0] = true;
+ Boolean.prototype.length = 1;
+
+ var newArr = Array.prototype.filter.call(false, callbackfn);
+ return newArr[0] === true;
+
+ } finally {
+ delete Boolean.prototype[0];
+ delete Boolean.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-4.js
new file mode 100644
index 000000000..e3976363e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-4.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.20-1-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-4.js",
+
+ description: "Array.prototype.filter applied to Boolean Object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Boolean;
+ }
+
+ var obj = new Boolean(true);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr[0] === 11 && newArr[1] === 12;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+}); \ No newline at end of file
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-5.js
new file mode 100644
index 000000000..bb39cb5ef
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-5.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-1-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-5.js",
+
+ description: "Array.prototype.filter applied to number primitive",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Number;
+ }
+
+ try {
+ Number.prototype[0] = 1;
+ Number.prototype.length = 1;
+
+ var newArr = Array.prototype.filter.call(2.5, callbackfn);
+ return newArr[0] === 1;
+ } finally {
+ delete Number.prototype[0];
+ delete Number.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-6.js
new file mode 100644
index 000000000..3b5a09951
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-6.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+
+ id: "15.4.4.20-1-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-6.js",
+
+ description: "Array.prototype.filter applied to Number object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Number;
+ }
+
+ var obj = new Number(-128);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr[0] === 11 && newArr[1] === 12;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-7.js
new file mode 100644
index 000000000..a39406860
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-7.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-1-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-7.js",
+
+ description: "Array.prototype.filter applied to string primitive",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof String;
+ }
+
+ var newArr = Array.prototype.filter.call("abc", callbackfn);
+
+ return newArr[0] === "a";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-8.js
new file mode 100644
index 000000000..d95d9d4ea
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-8.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-1-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-8.js",
+
+ description: "Array.prototype.filter applied to String object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return obj instanceof String;
+ }
+
+ var obj = new String("abc");
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr[0] === "a";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-9.js
new file mode 100644
index 000000000..14a568f34
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-9.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-1-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-1-9.js",
+
+ description: "Array.prototype.filter applied to Function object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj instanceof Function;
+ }
+
+ var obj = function (a, b) {
+ return a + b;
+ };
+ obj[0] = 11;
+ obj[1] = 9;
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr[0] === 11 && newArr[1] === 9;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-1.js
new file mode 100644
index 000000000..be1cfe32d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-1.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-10-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-1.js",
+
+description: "Array.prototype.filter doesn't mutate the Array on which it is called on",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ return true;
+ }
+ var srcArr = [1,2,3,4,5];
+ srcArr.filter(callbackfn);
+ if(srcArr[0] === 1 &&
+ srcArr[1] === 2 &&
+ srcArr[2] === 3 &&
+ srcArr[3] === 4 &&
+ srcArr[4] === 5)
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-2.js
new file mode 100644
index 000000000..e7f3d1715
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-2.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-10-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-2.js",
+
+description: "Array.prototype.filter returns new Array with length equal to number of true returned by callbackfn",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ if(val % 2)
+ return true;
+ else
+ return false;
+ }
+ var srcArr = [1,2,3,4,5];
+ var resArr = srcArr.filter(callbackfn);
+ if(resArr.length === 3 &&
+ resArr[0] === 1 &&
+ resArr[1] === 3 &&
+ resArr[2] === 5)
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-3.js
new file mode 100644
index 000000000..59a93aa1b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-3.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-10-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-3.js",
+
+description: "Array.prototype.filter - subclassed array when length is reduced",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 1;
+
+ function cb(){return true;}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-4.js
new file mode 100644
index 000000000..7209ebe15
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-4.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-10-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-10-4.js",
+
+description: "Array.prototype.filter doesn't visit expandos",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ }
+ var srcArr = [1,2,3,4,5];
+ srcArr["i"] = 10;
+ srcArr[true] = 11;
+
+ var resArr = srcArr.filter(callbackfn);
+ if(callCnt == 5)
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-1.js
new file mode 100644
index 000000000..13c6220ec
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-1.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-1.js",
+
+ description: "Array.prototype.filter applied to Array-like object, 'length' is own data property",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: 2
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-10.js
new file mode 100644
index 000000000..4101cc742
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-10.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-10.js",
+
+ description: "Array.prototype.filter applied to Array-like object, 'length' is inherited accessor property",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-11.js
new file mode 100644
index 000000000..80833cc21
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-11.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-11.js",
+
+ description: "Array.prototype.filter applied to Array-like object, 'length' is own accessor property without a get function",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 12
+ };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 0 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-12.js
new file mode 100644
index 000000000..304451cc6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-12.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-12.js",
+
+ description: "Array.prototype.filter - 'length' is own accessor property without a get function that overrides an inherited accessor property",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ try {
+ Object.defineProperty(Object.prototype, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var obj = { 0: 12, 1: 11 };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 0 && !accessed;
+ } finally {
+ delete Object.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-13.js
new file mode 100644
index 000000000..560eeaacf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-13.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-13.js",
+
+ description: "Array.prototype.filter applied to the Array-like object that 'length' is inherited accessor property without a get function",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 11;
+ child[1] = 12;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+ return newArr.length === 0 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-14.js
new file mode 100644
index 000000000..8ad7d6952
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-14.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-14.js",
+
+ description: "Array.prototype.filter applied to the Array-like object that 'length property doesn't exist",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 11, 1: 12 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 0 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-15.js
new file mode 100644
index 000000000..ca03f9e09
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-15.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-15.js",
+
+ description: "Array.prototype.filter - 'length' is property of the global object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 12;
+ fnGlobalObject()[1] = 11;
+ fnGlobalObject()[2] = 9;
+ fnGlobalObject().length = 2;
+ var newArr = Array.prototype.filter.call(fnGlobalObject(), callbackfn);
+ return newArr.length === 2;
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-17.js
new file mode 100644
index 000000000..088f28964
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-17.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-17.js",
+
+ description: "Array.prototype.filter applied to the Arguments object, which implements its own property get method",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var func = function (a, b) {
+ var newArr = Array.prototype.filter.call(arguments, callbackfn);
+ return newArr.length === 2;
+ };
+
+ return func(12, 11);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-18.js
new file mode 100644
index 000000000..e5cff1f2a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-18.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-18.js",
+
+ description: "Array.prototype.filter applied to String object, which implements its own property get method",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 3;
+ }
+
+ var str = new String("012");
+
+ var newArr = Array.prototype.filter.call(str, callbackfn);
+ return newArr.length === 3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-19.js
new file mode 100644
index 000000000..e0a5173a0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-19.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-19.js",
+
+ description: "Array.prototype.filter applied to Function object, which implements its own property get method",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var fun = function (a, b) {
+ return a + b;
+ };
+ fun[0] = 12;
+ fun[1] = 11;
+ fun[2] = 9;
+
+ var newArr = Array.prototype.filter.call(fun, callbackfn);
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-2.js
new file mode 100644
index 000000000..f8ab2a943
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-2.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-2.js",
+
+ description: "Array.prototype.filter - 'length' is own data property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var newArr = [12, 11].filter(callbackfn);
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-3.js
new file mode 100644
index 000000000..a0956ac39
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-3.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-3.js",
+
+ description: "Array.prototype.filter applied to Array-like object, 'length' is an own data property that overrides an inherited data property",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-4.js
new file mode 100644
index 000000000..d0e492526
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-4.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-4.js",
+
+ description: "Array.prototype.filter - 'length' is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var arrProtoLen;
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ try {
+ arrProtoLen = Array.prototype.length;
+ Array.prototype.length = 0;
+ var newArr = [12, 11].filter(callbackfn);
+ return newArr.length === 2;
+ } finally {
+ Array.prototype.length = arrProtoLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-5.js
new file mode 100644
index 000000000..edbcf6c80
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-5.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-5.js",
+
+ description: "Array.prototype.filter to Array-like object, 'length' is an own data property that overrides an inherited accessor property",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ Object.defineProperty(child, "length", {
+ value: 2,
+ configurable: true
+ });
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-6.js
new file mode 100644
index 000000000..9d69b390c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-6.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-6.js",
+
+ description: "Array.prototype.filter applied to Array-like object, 'length' is an inherited data property",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var proto = { length: 2 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-7.js
new file mode 100644
index 000000000..258082958
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-7.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-7.js",
+
+ description: "Array.prototype.filter applied to Array-like object, 'length' is an own accessor property",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ obj[0] = 12;
+ obj[1] = 11;
+ obj[2] = 9;
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-8.js
new file mode 100644
index 000000000..95bb92502
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-8.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-8.js",
+
+ description: "Array.prototype.filter applied to Array-like object, 'length' is own accessor property that overrides an inherited data property",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-9.js
new file mode 100644
index 000000000..634a311b1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-9.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-2-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-2-9.js",
+
+ description: "Array.prototype.filter applied to Array-like object, 'length' is an own accessor property that overrides an inherited accessor property",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return obj.length === 2;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+ return newArr.length === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-1.js
new file mode 100644
index 000000000..58d1aeaf3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-1.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-1.js",
+
+ description: "Array.prototype.filter - value of 'length' is undefined",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 0, 1: 1, length: undefined };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-10.js
new file mode 100644
index 000000000..ebcbafe28
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-10.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-10.js",
+
+ description: "Array.prototype.filter - value of 'length' is a number (value is NaN)",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 9, length: NaN };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-11.js
new file mode 100644
index 000000000..07e7f170d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-11.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-11.js",
+
+ description: "Array.prototype.filter - 'length' is a string containing a positive number",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: "2" };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js
new file mode 100644
index 000000000..8e4527cb1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-12.js",
+
+ description: "Array.prototype.filter - 'length' is a string containing a negative number",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: "-4294967294" };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-13.js
new file mode 100644
index 000000000..81d68dc24
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-13.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-13.js",
+
+ description: "Array.prototype.filter - 'length' is a string containing a decimal number",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: "2.5" };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js
new file mode 100644
index 000000000..31409b129
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-14.js",
+
+ description: "Array.prototype.filter - 'length' is a string containing +/-Infinity",
+
+ test: function testcase() {
+
+ var accessed1 = false;
+ var accessed2 = false;
+ var accessed3 = false;
+
+ function callbackfn1(val, idx, obj) {
+ accessed1 = true;
+ return true;
+ }
+
+ function callbackfn2(val, idx, obj) {
+ accessed2 = true;
+ return true;
+ }
+
+ function callbackfn3(val, idx, obj) {
+ accessed3 = true;
+ return true;
+ }
+
+ var obj1 = { 0: 9, length: "Infinity" };
+ var obj2 = { 0: 9, length: "-Infinity" };
+ var obj3 = { 0: 9, length: "+Infinity" };
+
+ var newArr1 = Array.prototype.filter.call(obj1, callbackfn1);
+ var newArr2 = Array.prototype.filter.call(obj2, callbackfn2);
+ var newArr3 = Array.prototype.filter.call(obj3, callbackfn3);
+
+ return !accessed1 && newArr1.length === 0 &&
+ !accessed2 && newArr2.length === 0 &&
+ !accessed3 && newArr3.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-15.js
new file mode 100644
index 000000000..020ed5e2b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-15.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-15.js",
+
+ description: "Array.prototype.filter - 'length' is a string containing an exponential number",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: "2E0" };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-16.js
new file mode 100644
index 000000000..572a1b611
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-16.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-16.js",
+
+ description: "Array.prototype.filter - 'length' is a string containing a hex number",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: "0x0002" };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-17.js
new file mode 100644
index 000000000..a3d4d1085
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-17.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-17.js",
+
+ description: "Array.prototype.filter - 'length' is a string containing a number with leading zeros",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: "0002.00" };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-18.js
new file mode 100644
index 000000000..d891bc53d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-18.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-18.js",
+
+ description: "Array.prototype.filter - value of 'length' is a string that can't convert to a number",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 9, length: "asdf!_" };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return !accessed && newArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-19.js
new file mode 100644
index 000000000..ba4183b54
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-19.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-19.js",
+
+ description: "Array.prototype.filter - value of 'length' is an Object which has an own toString method.",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: {
+ toString: function () {
+ return '2';
+ }
+ }
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-2.js
new file mode 100644
index 000000000..2146013c5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-2.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-2.js",
+
+ description: "Array.prototype.filter applied on an Array-like object if 'length' is 1 (length overridden to true(type conversion))",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, 1: 9, length: true };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-20.js
new file mode 100644
index 000000000..8b721cecc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-20.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-20.js",
+
+ description: "Array.prototype.filter - value of 'length' is an Object which has an own valueOf method.",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: {
+ valueOf: function () {
+ return 2;
+ }
+ }
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-21.js
new file mode 100644
index 000000000..33add2d83
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-21.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-21.js",
+
+ description: "Array.prototype.filter - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string",
+
+ test: function testcase() {
+
+ var firstStepOccured = false;
+ var secondStepOccured = false;
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: {
+ valueOf: function () {
+ firstStepOccured = true;
+ return {};
+ },
+ toString: function () {
+ secondStepOccured = true;
+ return '2';
+ }
+ }
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11 && firstStepOccured && secondStepOccured;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-22.js
new file mode 100644
index 000000000..b67f78f6a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-22.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-22.js",
+
+ description: "Array.prototype.filter throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var firstStepOccured = false;
+ var secondStepOccured = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 12,
+
+ length: {
+ valueOf: function () {
+ firstStepOccured = true;
+ return {};
+ },
+ toString: function () {
+ secondStepOccured = true;
+ return {};
+ }
+ }
+ };
+
+ try {
+ Array.prototype.filter.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && !accessed && firstStepOccured && secondStepOccured;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-23.js
new file mode 100644
index 000000000..de84a00e7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-23.js
@@ -0,0 +1,71 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-23.js",
+
+ description: "Array.prototype.filter uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods",
+
+ test: function testcase() {
+
+ var valueOfAccessed = false;
+ var toStringAccessed = false;
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var proto = {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ child.toString = function () {
+ toStringAccessed = true;
+ return '1';
+ };
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: child
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11 && valueOfAccessed && !toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-24.js
new file mode 100644
index 000000000..096b3e9eb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-24.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-24.js",
+
+ description: "Array.prototype.filter - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: 2.685
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js
new file mode 100644
index 000000000..73edaa0ff
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-25.js",
+
+ description: "Array.prototype.filter - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: -4294967294.5
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js
new file mode 100644
index 000000000..95aa4689e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-28.js",
+
+ description: "Array.prototype.filter - value of 'length' is boundary value (2^32)",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = {
+ 0: 12,
+ length: 4294967296
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return !accessed && newArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js
new file mode 100644
index 000000000..9f8940619
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-29.js",
+
+ description: "Array.prototype.filter - value of 'length' is boundary value (2^32 + 1)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 9,
+ length: 4294967297
+ };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-3.js
new file mode 100644
index 000000000..f3fcaae4f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-3.js",
+
+ description: "Array.prototype.filter - value of 'length' is a number (value is 0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 11, length: 0 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-4.js
new file mode 100644
index 000000000..4050cd66e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-4.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-4.js",
+
+ description: "Array.prototype.filter - value of 'length' is a number (value is +0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 11, length: +0 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-5.js
new file mode 100644
index 000000000..75aecd130
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-5.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-5.js",
+
+ description: "Array.prototype.filter - value of 'length' is a number (value is -0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 11, length: -0 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-6.js
new file mode 100644
index 000000000..dd124dac2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-6.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-6.js",
+
+ description: "Array.prototype.filter - value of 'length' is a number (value is positive)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: 2 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js
new file mode 100644
index 000000000..9cb69bda4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-7.js",
+
+ description: "Array.prototype.filter - value of 'length' is a number (value is negative)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 1: 11, 2: 9, length: -4294967294 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js
new file mode 100644
index 000000000..de114c7c6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-8.js",
+
+ description: "Array.prototype.filter - value of 'length' is a number (value is Infinity)",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 9, length: Infinity };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-9.js
new file mode 100644
index 000000000..cc743b5b0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-9.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-3-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-3-9.js",
+
+ description: "Array.prototype.filter - value of 'length' is a number (value is -Infinity)",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = { 0: 9, length: -Infinity };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-1.js
new file mode 100644
index 000000000..28717ed9a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-1.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-4-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-1.js",
+
+description: "Array.prototype.filter throws TypeError if callbackfn is undefined",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.filter();
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-10.js
new file mode 100644
index 000000000..0b061ac2c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-10.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-4-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-10.js",
+
+ description: "Array.prototype.filter - the exception is not thrown if exception was thrown by step 2",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.filter.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-11.js
new file mode 100644
index 000000000..1b99c9f4f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-11.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-4-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-11.js",
+
+ description: "Array.prototype.filter - the exception is not thrown if exception was thrown by step 3",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.filter.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-12.js
new file mode 100644
index 000000000..c6f00aef1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-12.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-4-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-12.js",
+
+ description: "Array.prototype.filter - 'callbackfn' is a function",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 1) {
+ return val === 9;
+ }
+ return false;
+ }
+
+ var newArr = [11, 9].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 9;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-15.js
new file mode 100644
index 000000000..fc1966397
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-15.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-4-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-15.js",
+
+ description: "Array.prototype.filter - calling with no callbackfn is the same as passing undefined for callbackfn",
+
+ test: function testcase() {
+ var obj = { 10: 10 };
+ var lengthAccessed = false;
+ var loopAccessed = false;
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ lengthAccessed = true;
+ return 20;
+ },
+ configurable: true
+ });
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ loopAccessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.filter.call(obj);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && lengthAccessed && !loopAccessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-2.js
new file mode 100644
index 000000000..e2c533c73
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-2.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-4-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-2.js",
+
+description: "Array.prototype.filter throws ReferenceError if callbackfn is unreferenced",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.filter(foo);
+ }
+ catch(e) {
+ if(e instanceof ReferenceError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-3.js
new file mode 100644
index 000000000..ccfa7b503
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-3.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-4-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-3.js",
+
+description: "Array.prototype.filter throws TypeError if callbackfn is null",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.filter(null);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-4.js
new file mode 100644
index 000000000..4711f9e7d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-4.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-4-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-4.js",
+
+description: "Array.prototype.filter throws TypeError if callbackfn is boolean",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.filter(true);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-5.js
new file mode 100644
index 000000000..d590aa28d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-5.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-4-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-5.js",
+
+description: "Array.prototype.filter throws TypeError if callbackfn is number",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.filter(5);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-6.js
new file mode 100644
index 000000000..e17627a1d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-6.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-4-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-6.js",
+
+description: "Array.prototype.filter throws TypeError if callbackfn is string",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.filter("abc");
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-7.js
new file mode 100644
index 000000000..c7c878d4a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-7.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-4-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-7.js",
+
+description: "Array.prototype.filter throws TypeError if callbackfn is Object without [[Call]] internal method",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.filter(new Object());
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-8.js
new file mode 100644
index 000000000..da6904ba5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-8.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-4-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-8.js",
+
+ description: "Array.prototype.filter - side effects produced by step 2 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.filter.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-9.js
new file mode 100644
index 000000000..0c55aec41
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-9.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-4-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-4-9.js",
+
+ description: "Array.prototype.filter - side effects produced by step 3 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "2";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.filter.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1-s.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1-s.js
new file mode 100644
index 000000000..c90089dcc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1-s.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2010 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-5-1-s",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1-s.js",
+
+description: "Array.prototype.filter - thisArg not passed to strict callbackfn",
+
+test: function testcase() {
+ var innerThisCorrect = false;
+
+ function callbackfn(val, idx, obj) {
+ "use strict";
+ innerThisCorrect = this===undefined;
+ return true;
+ }
+
+ [1].filter(callbackfn);
+ return innerThisCorrect;
+ },
+
+strict:1,
+
+precondition: function prereq() {
+ return fnSupportsStrict() && fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1.js
new file mode 100644
index 000000000..950a57015
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.20-5-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-1.js",
+
+ description: "Array.prototype.filter - thisArg is passed",
+
+ test: function testcase() {
+ this._15_4_4_20_5_1 = false;
+ var _15_4_4_20_5_1 = true;
+
+ function callbackfn(val, idx, obj) {
+ return this._15_4_4_20_5_1;
+ }
+ var srcArr = [1];
+ var resArr = srcArr.filter(callbackfn);
+ return resArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-10.js
new file mode 100644
index 000000000..69291cbfe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-10.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-10.js",
+
+ description: "Array.prototype.filter - Array Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objArray = new Array(10);
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objArray;
+ }
+
+
+ var newArr = [11].filter(callbackfn, objArray);
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-11.js
new file mode 100644
index 000000000..66c96e372
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-11.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-11.js",
+
+ description: "Array.prototype.filter - String Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objString = new String();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objString;
+ }
+
+ var newArr = [11].filter(callbackfn, objString);
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-12.js
new file mode 100644
index 000000000..cc8833f32
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-12.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-12.js",
+
+ description: "Array.prototype.filter - Boolean Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objBoolean = new Boolean();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objBoolean;
+ }
+
+ var newArr = [11].filter(callbackfn, objBoolean);
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-13.js
new file mode 100644
index 000000000..02d516ef7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-13.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-13.js",
+
+ description: "Array.prototype.filter - Number Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objNumber = new Number();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objNumber;
+ }
+
+ var newArr = [11].filter(callbackfn, objNumber);
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-14.js
new file mode 100644
index 000000000..b9565fa49
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-14.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-14.js",
+
+ description: "Array.prototype.filter - the Math object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === Math;
+ }
+
+ var newArr = [11].filter(callbackfn, Math);
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-15.js
new file mode 100644
index 000000000..c86ef78d5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-15.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-15.js",
+
+ description: "Array.prototype.filter - Date Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ var objDate = new Date();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objDate;
+ }
+
+ var newArr = [11].filter(callbackfn, objDate);
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-16.js
new file mode 100644
index 000000000..73912fa2e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-16.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-16.js",
+
+ description: "Array.prototype.filter - RegExp Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ var objRegExp = new RegExp();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objRegExp;
+ }
+
+ var newArr = [11].filter(callbackfn, objRegExp);
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-17.js
new file mode 100644
index 000000000..1c6a4f00f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-17.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-17.js",
+
+ description: "Array.prototype.filter - the JSON object can be used as thisArg",
+
+ test: function testcase() {
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === JSON;
+ }
+
+ var newArr = [11].filter(callbackfn, JSON);
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-18.js
new file mode 100644
index 000000000..2cb650411
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-18.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-18.js",
+
+ description: "Array.prototype.filter - Error Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objError = new RangeError();
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objError;
+ }
+
+ var newArr = [11].filter(callbackfn, objError);
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-19.js
new file mode 100644
index 000000000..a50dedaf9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-19.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-19.js",
+
+ description: "Array.prototype.filter - the Arguments object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var arg;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === arg;
+ }
+
+ (function fun() {
+ arg = arguments;
+ }(1, 2, 3));
+
+ var newArr = [11].filter(callbackfn, arg);
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+}); \ No newline at end of file
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-2.js
new file mode 100644
index 000000000..78656e771
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-2.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-5-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-2.js",
+
+description: "Array.prototype.filter - thisArg is Object",
+
+test: function testcase() {
+ var res = false;
+ var o = new Object();
+ o.res = true;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ var srcArr = [1];
+ var resArr = srcArr.filter(callbackfn,o);
+ if( resArr.length === 1)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-21.js
new file mode 100644
index 000000000..b7bf5f698
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-21.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-21.js",
+
+ description: "Array.prototype.filter - the global object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === fnGlobalObject();
+ }
+
+ var newArr = [11].filter(callbackfn, fnGlobalObject());
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-22.js
new file mode 100644
index 000000000..7cdca584c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-22.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-22.js",
+
+ description: "Array.prototype.filter - boolean primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this.valueOf() === false;
+ }
+
+ var newArr = [11].filter(callbackfn, false);
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-23.js
new file mode 100644
index 000000000..da7ea3615
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-23.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-23.js",
+
+ description: "Array.prototype.filter - number primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this.valueOf() === 101;
+ }
+
+ var newArr = [11].filter(callbackfn, 101);
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-24.js
new file mode 100644
index 000000000..e0fc72a38
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-24.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-24.js",
+
+ description: "Array.prototype.filter - string primitive can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this.valueOf() === "abc";
+ }
+
+ var newArr = [11].filter(callbackfn, "abc");
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-27.js
new file mode 100644
index 000000000..632087e36
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-27.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-27.js",
+
+ description: "Array.prototype.filter - Array.isArray(arg) returns true when arg is the returned array",
+
+ test: function testcase() {
+
+ var newArr = [11].filter(function () { });
+
+ return Array.isArray(newArr);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Array.isArray);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-28.js
new file mode 100644
index 000000000..7418846b1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-28.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-28.js",
+
+ description: "Array.prototype.filter - the returned array is instanceof Array",
+
+ test: function testcase() {
+
+ var newArr = [11].filter(function () { });
+
+ return newArr instanceof Array;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-29.js
new file mode 100644
index 000000000..2fbccb812
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-29.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-29.js",
+
+ description: "Array.prototype.filter - returns an array whose length is 0",
+
+ test: function testcase() {
+
+ var newArr = [11].filter(function () { });
+
+ return newArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-3.js
new file mode 100644
index 000000000..af94bee1d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-5-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-3.js",
+
+description: "Array.prototype.filter - thisArg is Array",
+
+test: function testcase() {
+ var res = false;
+ var a = new Array();
+ a.res = true;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ var srcArr = [1];
+ var resArr = srcArr.filter(callbackfn,a);
+ if( resArr.length === 1)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-30.js
new file mode 100644
index 000000000..94bb4365d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-30.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.20-5-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-30.js",
+
+ description: "Array.prototype.filter - thisArg not passed",
+
+ test: function testcase() {
+ function innerObj() {
+ this._15_4_4_20_5_30 = true;
+ var _15_4_4_20_5_30 = false;
+
+ function callbackfn(val, idx, obj) {
+ return this._15_4_4_20_5_30;
+ }
+ var srcArr = [1];
+ var resArr = srcArr.filter(callbackfn);
+ this.retVal = resArr.length === 0;
+ }
+ return new innerObj().retVal;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-4.js
new file mode 100644
index 000000000..ccb775417
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-5-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-4.js",
+
+description: "Array.prototype.filter - thisArg is object from object template(prototype)",
+
+test: function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ foo.prototype.res = true;
+ var f = new foo();
+
+ var srcArr = [1];
+ var resArr = srcArr.filter(callbackfn,f);
+ if( resArr.length === 1)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-5.js
new file mode 100644
index 000000000..3c2641571
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-5.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-5-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-5.js",
+
+description: "Array.prototype.filter - thisArg is object from object template",
+
+test: function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ var f = new foo();
+ f.res = true;
+
+ var srcArr = [1];
+ var resArr = srcArr.filter(callbackfn,f);
+ if( resArr.length === 1)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-6.js
new file mode 100644
index 000000000..5b68bf3f9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-6.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-5-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-6.js",
+
+description: "Array.prototype.filter - thisArg is function",
+
+test: function testcase() {
+ var res = false;
+ function callbackfn(val, idx, obj)
+ {
+ return this.res;
+ }
+
+ function foo(){}
+ foo.res = true;
+
+ var srcArr = [1];
+ var resArr = srcArr.filter(callbackfn,foo);
+ if( resArr.length === 1)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-7.js
new file mode 100644
index 000000000..9e73946f6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-7.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-7.js",
+
+ description: "Array.prototype.filter - built-in functions can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === eval;
+ }
+
+ var newArr = [11].filter(callbackfn, eval);
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-9.js
new file mode 100644
index 000000000..176a97924
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-9.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-5-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-5-9.js",
+
+ description: "Array.prototype.filter - Function Object can be used as thisArg",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objFunction = function () { };
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return this === objFunction;
+ }
+
+ var newArr = [11].filter(callbackfn, objFunction);
+
+ return newArr[0] === 11 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-1.js
new file mode 100644
index 000000000..92dbd2753
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-1.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-6-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-1.js",
+
+description: "Array.prototype.filter returns an empty array if 'length' is 0 (empty array)",
+
+test: function testcase() {
+ function cb(){}
+ var a = [].filter(cb);
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-2.js
new file mode 100644
index 000000000..f6600fe28
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-2.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-6-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-2.js",
+
+description: "Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden to null (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = null;
+
+ function cb(){}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-3.js
new file mode 100644
index 000000000..48348aedb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-6-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-3.js",
+
+description: "Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden to false (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = false;
+
+ function cb(){}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-4.js
new file mode 100644
index 000000000..fd9c04904
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-4.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-6-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-4.js",
+
+description: "Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 0;
+
+ function cb(){}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-5.js
new file mode 100644
index 000000000..360661f95
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-5.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-6-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-5.js",
+
+description: "Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = '0';
+
+ function cb(){}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-6.js
new file mode 100644
index 000000000..33a84520b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-6.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-6-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-6.js",
+
+description: "Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden with obj with valueOf)",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { valueOf: function () { return 0;}};
+ f.length = o;
+
+ function cb(){}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-7.js
new file mode 100644
index 000000000..47c160c3a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-7.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-6-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-7.js",
+
+description: "Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { toString: function () { return '0';}};
+ f.length = o;
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+
+ function cb(){}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-8.js
new file mode 100644
index 000000000..ca77c27f0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-8.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-6-8",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-6-8.js",
+
+description: "Array.prototype.filter returns an empty array if 'length' is 0 (subclassed Array, length overridden with []",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ function cb(){}
+ var a = f.filter(cb);
+
+ if (Array.isArray(a) &&
+ a.length === 0) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-1.js
new file mode 100644
index 000000000..dfff35512
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-1.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.20-9-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-1.js",
+
+ description: "Array.prototype.filter doesn't consider new elements added to array after it is called",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ srcArr[2] = 3;
+ srcArr[5] = 6;
+ return true;
+ }
+
+ var srcArr = [1, 2, , 4, 5];
+ var resArr = srcArr.filter(callbackfn);
+ return resArr.length === 5;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-2.js
new file mode 100644
index 000000000..de334c0f5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-2.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-9-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-2.js",
+
+description: "Array.prototype.filter considers new value of elements in array after it is called",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ srcArr[2] = -1;
+ srcArr[4] = -1;
+ if(val > 0)
+ return true;
+ else
+ return false;
+ }
+
+ var srcArr = [1,2,3,4,5];
+ var resArr = srcArr.filter(callbackfn);
+ if(resArr.length === 3 && resArr[0] === 1 && resArr[2] === 4)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-3.js
new file mode 100644
index 000000000..052ed516c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-3.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-9-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-3.js",
+
+description: "Array.prototype.filter doesn't visit deleted elements in array after the call",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ delete srcArr[2];
+ delete srcArr[4];
+ if(val > 0)
+ return true;
+ else
+ return false;
+ }
+
+ var srcArr = [1,2,3,4,5];
+ var resArr = srcArr.filter(callbackfn);
+ if(resArr.length === 3 && resArr[0] === 1 && resArr[2] === 4 ) // two elements deleted
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-4.js
new file mode 100644
index 000000000..a737145d9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-4.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-9-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-4.js",
+
+description: "Array.prototype.filter doesn't visit deleted elements when Array.length is decreased",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ srcArr.length = 2;
+ return true;
+ }
+
+ var srcArr = [1,2,3,4,6];
+ var resArr = srcArr.filter(callbackfn);
+ if(resArr.length === 2 )
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-5.js
new file mode 100644
index 000000000..352f9c876
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-5.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-9-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-5.js",
+
+description: "Array.prototype.filter doesn't consider newly added elements in sparse array",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ srcArr[1000] = 3;
+ return true;
+ }
+
+ var srcArr = new Array(10);
+ srcArr[1] = 1;
+ srcArr[2] = 2;
+ var resArr = srcArr.filter(callbackfn);
+ if( resArr.length === 2)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-6.js
new file mode 100644
index 000000000..c321d6829
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-6.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-9-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-6.js",
+
+description: "Array.prototype.filter visits deleted element in array after the call when same index is also present in prototype",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj)
+ {
+ delete srcArr[2];
+ delete srcArr[4];
+ if(val > 0)
+ return true;
+ else
+ return false;
+ }
+
+ Array.prototype[4] = 5;
+ var srcArr = [1,2,3,4,5];
+ var resArr = srcArr.filter(callbackfn);
+ delete Array.prototype[4];
+ if(resArr.length === 4 && resArr[0] === 1 && resArr[3] == 5) // only one element deleted
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-7.js
new file mode 100644
index 000000000..c1b3fb4be
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-7.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.20-9-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-7.js",
+
+ description: "Array.prototype.filter stops calling callbackfn once the array is deleted during the call",
+
+ test: function testcase() {
+ var o = new Object();
+ o.srcArr = [1, 2, 3, 4, 5];
+
+ function callbackfn(val, idx, obj) {
+ delete o.srcArr;
+ if (val > 0)
+ return true;
+ else
+ return false;
+ }
+
+ var resArr = o.srcArr.filter(callbackfn);
+ return resArr.length === 5 && typeof o.srcArr === "undefined";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-8.js
new file mode 100644
index 000000000..955c05996
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-8.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-8.js",
+
+ description: "Array.prototype.filter - no observable effects occur if len is 0",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, 1: 12, length: 0 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return accessed === false && obj.length === 0 && newArr.length === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-9.js
new file mode 100644
index 000000000..1ab1f4b7e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-9.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-9.js",
+
+ description: "Array.prototype.filter - modifications to length don't change number of iterations",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ return true;
+ }
+
+ var obj = { 1: 12, 2: 9, length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ obj.length = 3;
+ return 11;
+ },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 2 && 2 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-1.js
new file mode 100644
index 000000000..affc69237
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-1.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-9-b-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-1.js",
+
+description: "Array.prototype.filter - callbackfn not called for indexes never been assigned values",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(val, idx, obj)
+ {
+ callCnt++;
+ return false;
+ }
+
+ var srcArr = new Array(10);
+ srcArr[1] = undefined; //explicitly assigning a value
+ var resArr = srcArr.filter(callbackfn);
+ if( resArr.length === 0 && callCnt === 1)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-10.js
new file mode 100644
index 000000000..3904cdbfb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-10.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-10.js",
+
+ description: "Array.prototype.filter - deleting property of prototype causes prototype index property not to be visited on an Array-like Object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var obj = { 2: 2, length: 20 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete Object.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 2 && newArr[1] !== 1;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-11.js
new file mode 100644
index 000000000..3968a7fe6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-11.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-11.js",
+
+ description: "Array.prototype.filter - deleting property of prototype causes prototype index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete Array.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ var newArr = arr.filter(callbackfn);
+ return newArr.length === 2 && newArr[1] !== 1;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-12.js
new file mode 100644
index 000000000..d8851ca87
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-12.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-12.js",
+
+ description: "Array.prototype.filter - deleting own property with prototype property causes prototype index property to be visited on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var obj = { 0: 0, 1: 111, 2: 2, length: 10 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 3 && newArr[1] === 1;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-13.js
new file mode 100644
index 000000000..e06786add
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-13.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-13.js",
+
+ description: "Array.prototype.filter - deleting own property with prototype property causes prototype index property to be visited on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val < 3 ? true : false;
+ }
+ var arr = [0, 111, 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 3 && newArr[1] === 1;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-14.js
new file mode 100644
index 000000000..aadcbbd64
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-14.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-14.js",
+
+ description: "Array.prototype.filter - decreasing length of array causes index property not to be visited",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var arr = [0, 1, 2, "last"];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr.length = 3;
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newArr = arr.filter(callbackfn);
+
+
+ return newArr.length === 3 && newArr[2] === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-15.js
new file mode 100644
index 000000000..af075d424
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-15.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-15.js",
+
+ description: "Array.prototype.filter - decreasing length of array with prototype property causes prototype index property to be visited",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var arr = [0, 1, 2];
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "prototype";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 3 && newArr[2] === "prototype";
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-16.js
new file mode 100644
index 000000000..aee2c8451
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-16.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-16.js",
+
+ description: "Array.prototype.filter - decreasing length of array does not delete non-configurable properties",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var arr = [0, 1, 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "unconfigurable";
+ },
+ configurable: false
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 3 && newArr[2] === "unconfigurable";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-2.js
new file mode 100644
index 000000000..425ad6eee
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-2.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-2.js",
+
+ description: "Array.prototype.filter - added properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ obj[2] = "length";
+ return 3;
+ },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === "length";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-3.js
new file mode 100644
index 000000000..1d6c46144
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-3.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-3.js",
+
+ description: "Array.prototype.filter - deleted properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var obj = { 2: 6.99, 8: 19 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ delete obj[2];
+ return 10;
+ },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] !== 6.99;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-4.js
new file mode 100644
index 000000000..8664574e4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-4.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-4.js",
+
+ description: "Array.prototype.filter - properties added into own object after current position are visited on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 2 && newArr[1] === 6.99;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-5.js
new file mode 100644
index 000000000..5199769e2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-5.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-5.js",
+
+ description: "Array.prototype.filter - properties added into own object after current position are visited on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 3 && newArr[1] === 6.99;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-6.js
new file mode 100644
index 000000000..a436176f0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-6.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-6.js",
+
+ description: "Array.prototype.filter - properties can be added to prototype after current position are visited on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var obj = { length: 2 };
+
+ try {
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 2 && Array[1] === 6.99;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-7.js
new file mode 100644
index 000000000..78d33d2f6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-7.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-7.js",
+
+ description: "Array.prototype.filter - properties can be added to prototype after current position are visited on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var arr = [0, , 2];
+
+ try {
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 3 && newArr[1] === 6.99;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-8.js
new file mode 100644
index 000000000..6eaa5dcbc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-8.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-8.js",
+
+ description: "Array.prototype.filter - deleting own property causes index property not to be visited on an Array-like object",
+
+ test: function testcase() {
+ var accessed = false;
+ var obj = { length: 2 };
+
+ function callbackfn(val, idx, o) {
+ accessed = true;
+ return true;
+ }
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-9.js
new file mode 100644
index 000000000..34a570516
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-9.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-b-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-b-9.js",
+
+ description: "Array.prototype.filter - deleting own property causes index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+ var arr = [1, 2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "6.99";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-1.js
new file mode 100644
index 000000000..c8ee028f4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-1.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-1.js",
+
+ description: "Array.prototype.filter - element to be retrieved is own data property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = {};
+ function callbackfn(val, idx, obj) {
+ return (idx === 5) && (val === kValue);
+ }
+
+ var obj = { 5: kValue, length: 100 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === kValue;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-10.js
new file mode 100644
index 000000000..690cb586b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-10.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-10.js",
+
+ description: "Array.prototype.filter - element to be retrieved is own accessor property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return idx === 2 && val === 12;
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return 12;
+ },
+ configurable: true
+ });
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 12;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-11.js
new file mode 100644
index 000000000..43ae32da5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-11.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-11.js",
+
+ description: "Array.prototype.filter - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return idx === 0 && val === 11;
+ }
+
+ var proto = { 0: 5, 1: 6 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ Object.defineProperty(child, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-12.js
new file mode 100644
index 000000000..6d8f1e6e0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-12.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-12.js",
+
+ description: " Array.prototype.filter - element to be retrieved is own accessor property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val === 111 && idx === 0;
+ }
+
+ var arr = [];
+ try {
+ Array.prototype[0] = 10;
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return 111;
+ },
+ configurable: true
+ });
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 111;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-13.js
new file mode 100644
index 000000000..ba6073bfe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-13.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-13.js",
+
+ description: "Array.prototype.filter - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return idx === 1 && val === 12;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 6;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ Object.defineProperty(child, "1", {
+ get: function () {
+ return 12;
+ },
+ configurable: true
+ });
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 12;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-14.js
new file mode 100644
index 000000000..dee4890d0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-14.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-14.js",
+
+ description: " Array.prototype.filter - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return idx === 0 && val === 11;
+ }
+
+ var arr = [];
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 5;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-15.js
new file mode 100644
index 000000000..298c5e699
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-15.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-15.js",
+
+ description: "Array.prototype.filter - element to be retrieved is inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val === 11 && idx === 1;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 20;
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-16.js
new file mode 100644
index 000000000..02fb44be6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-16.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-16.js",
+
+ description: "Array.prototype.filter - element to be retrieved is inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return idx === 0 && val === 11;
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+ var newArr = [, , , ].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-17.js
new file mode 100644
index 000000000..e9a940308
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-17.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-17.js",
+
+ description: "Array.prototype.filter - element to be retrieved is own accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return undefined === val && idx === 1;
+ }
+
+ var obj = { length: 2 };
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === undefined;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-18.js
new file mode 100644
index 000000000..fe04cedeb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-18.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-18.js",
+
+ description: "Array.prototype.filter - element to be retrieved is own accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return undefined === val && idx === 0;
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === undefined;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-19.js
new file mode 100644
index 000000000..eb4b2f10e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-19.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-19.js",
+
+ description: "Array.prototype.filter - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return undefined === val && idx === 1;
+ }
+
+ var obj = { length: 2 };
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+ try {
+ Object.prototype[1] = 10;
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === undefined;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-2.js
new file mode 100644
index 000000000..a7226bd08
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-2.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-2.js",
+
+ description: "Array.prototype.filter - element to be retrieved is own data property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 11;
+ }
+ }
+
+ var newArr = [11].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-20.js
new file mode 100644
index 000000000..f8865a404
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-20.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-20.js",
+
+ description: "Array.prototype.filter - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return undefined === val && idx === 0;
+ }
+
+ var arr = [];
+
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[0] = 100;
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === undefined;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-21.js
new file mode 100644
index 000000000..6f948e3e5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-21.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-21.js",
+
+ description: "Array.prototype.filter - element to be retrieved is inherited accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val === undefined && idx === 1;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === undefined;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-22.js
new file mode 100644
index 000000000..15c542a1f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-22.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-22.js",
+
+ description: "Array.prototype.filter - element to be retrieved is inherited accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return undefined === val && idx === 0;
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ set: function () { },
+ configurable: true
+ });
+ var newArr = [, ].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === undefined;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-23.js
new file mode 100644
index 000000000..8c6e1842b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-23.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-23.js",
+
+ description: "Array.prototype.filter - This object is the global object which contains index property",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return idx === 0 && val === 11;
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 11;
+ fnGlobalObject().length = 1;
+ var newArr = Array.prototype.filter.call(fnGlobalObject(), callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ } finally {
+ delete fnGlobalObject()[0];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-25.js
new file mode 100644
index 000000000..e7e7f4815
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-25.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-25.js",
+
+ description: "Array.prototype.filter - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val === 11 && idx === 0;
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.filter.call(arguments, callbackfn);
+ };
+
+ var newArr = func(11);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-26.js
new file mode 100644
index 000000000..eb4fdf6f0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-26.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-26.js",
+
+ description: "Array.prototype.filter - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 11;
+ } else if (idx === 1) {
+ return val === 9;
+ } else {
+ return false;
+ }
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.filter.call(arguments, callbackfn);
+ };
+ var newArr = func(11, 9);
+
+ return newArr.length === 2 && newArr[0] === 11 &&
+ newArr[1] === 9;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-27.js
new file mode 100644
index 000000000..ae67db6e0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-27.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-27.js",
+
+ description: "Array.prototype.filter - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 11;
+ } else if (idx === 1) {
+ return val === 12;
+ } else if (idx === 2) {
+ return val === 9;
+ } else {
+ return false;
+ }
+ }
+
+ var func = function (a, b) {
+ return Array.prototype.filter.call(arguments, callbackfn);
+ };
+ var newArr = func(11, 12, 9);
+
+ return newArr.length === 3 && newArr[0] === 11 &&
+ newArr[1] === 12 && newArr[2] === 9;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-28.js
new file mode 100644
index 000000000..703582c06
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-28.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-28.js",
+
+ description: "Array.prototype.filter - element changed by getter on previous iterations is observed on an Array",
+
+ test: function testcase() {
+
+ var preIterVisible = false;
+ var arr = [];
+
+ function callbackfn(val, idx, obj) {
+ return idx === 1 && val === 9;
+ }
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ preIterVisible = true;
+ return 11;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 9;
+ } else {
+ return 11;
+ }
+ },
+ configurable: true
+ });
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 9;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-29.js
new file mode 100644
index 000000000..e3188aaf0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-29.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-29.js",
+
+ description: "Array.prototype.filter - element changed by getter on previous iterations is observed on an Array-like object",
+
+ test: function testcase() {
+ function callbackfn(val, idx, obj) {
+ return val === 9 && idx === 1;
+ }
+
+ var preIterVisible = false;
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ preIterVisible = true;
+ return 11;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 9;
+ } else {
+ return 13;
+ }
+ },
+ configurable: true
+ });
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 9;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-3.js
new file mode 100644
index 000000000..a81bb26f2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-3.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-3.js",
+
+ description: "Array.prototype.filter - element to be retrieved is own data property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return (idx === 5) && (val === "abc");
+ }
+
+ var proto = { 0: 11, 5: 100 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[5] = "abc";
+ child.length = 10;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === "abc";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-30.js
new file mode 100644
index 000000000..be44381bf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-30.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-30.js",
+
+ description: "Array.prototype.filter - unnhandled exceptions happened in getter terminate iteration on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ if (idx > 1) {
+ accessed = true;
+ }
+ return true;
+ }
+
+ var obj = { 0: 11, 5: 10, 10: 8, length: 20 };
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.filter.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-31.js
new file mode 100644
index 000000000..bf937547c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-31.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-31.js",
+
+ description: "Array.prototype.filter - unnhandled exceptions happened in getter terminate iteration on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(val, idx, obj) {
+ if (idx > 1) {
+ accessed = true;
+ }
+ return true;
+ }
+
+ var arr = [];
+ arr[5] = 10;
+ arr[10] = 100;
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ arr.filter(callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-4.js
new file mode 100644
index 000000000..0d28d5499
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-4.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-4.js",
+
+ description: "Array.prototype.filter - element to be retrieved is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return (idx === 0) && (val === 12);
+ }
+
+ try {
+ Array.prototype[0] = 11;
+ var newArr = [12].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 12;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-5.js
new file mode 100644
index 000000000..9e6a50c71
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-5.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-5.js",
+
+ description: "Array.prototype.filter - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return idx === 0 && val === 11;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return 5;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ Object.defineProperty(child, "0", {
+ value: 11,
+ configurable: true
+ });
+ child[1] = 12;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-6.js
new file mode 100644
index 000000000..21237496d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-6.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-6.js",
+
+ description: "Array.prototype.filter - element to be retrieved is own data property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val === 11;
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 9;
+ },
+ configurable: true
+ });
+ var newArr = [11].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-7.js
new file mode 100644
index 000000000..1557db561
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-7.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-7.js",
+
+ description: "Array.prototype.filter - element to be retrieved is inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var kValue = 'abc';
+
+ function callbackfn(val, idx, obj) {
+ return (idx === 5) && (val === kValue);
+ }
+
+ var proto = { 5: kValue };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 10;
+
+ var newArr = Array.prototype.filter.call(child, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === kValue;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-8.js
new file mode 100644
index 000000000..3da285739
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-8.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-8.js",
+
+ description: "Array.prototype.filter - element to be retrieved is inherited data property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return (idx === 1) && (val === 13);
+ }
+
+ try {
+ Array.prototype[1] = 13;
+ var newArr = [, , , ].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 13;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && ![, 1].hasOwnProperty(0);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-9.js
new file mode 100644
index 000000000..65f6df198
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-9.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-i-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-i-9.js",
+
+ description: "Array.prototype.filter - element to be retrieved is own accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return (idx === 0) && (val === 11);
+ }
+
+ var obj = { 10: 10, length: 20 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-1.js
new file mode 100644
index 000000000..8760cc737
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-1.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-9-c-ii-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-1.js",
+
+description: "Array.prototype.filter - callbackfn called with correct parameters",
+
+test: function testcase() {
+
+ var bPar = true;
+ var bCalled = false;
+ function callbackfn(val, idx, obj)
+ {
+ bCalled = true;
+ if(obj[idx] !== val)
+ bPar = false;
+ }
+
+ var srcArr = [0,1,true,null,new Object(),"five"];
+ srcArr[999999] = -6.6;
+ var resArr = srcArr.filter(callbackfn);
+
+ if(bCalled === true && bPar === true)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-10.js
new file mode 100644
index 000000000..9e9d1896d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-10.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-10.js",
+
+ description: "Array.prototype.filter - callbackfn is called with 1 formal parameter",
+
+ test: function testcase() {
+
+ function callbackfn(val) {
+ return val > 10;
+ }
+ var newArr = [12].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 12;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-11.js
new file mode 100644
index 000000000..2ce09d5c0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-11.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-11.js",
+
+ description: "Array.prototype.filter - callbackfn is called with 2 formal parameter",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx) {
+ return val > 10 && arguments[2][idx] === val;
+ }
+ var newArr = [11].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-12.js
new file mode 100644
index 000000000..9887e4b93
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-12.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-12.js",
+
+ description: "Array.prototype.filter - callbackfn is called with 3 formal parameter",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return val > 10 && obj[idx] === val;
+ }
+ var newArr = [11].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-13.js
new file mode 100644
index 000000000..b6e05821b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-13.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-13.js",
+
+ description: "Array.prototype.filter - callbackfn that uses arguments object to get parameter value",
+
+ test: function testcase() {
+
+ function callbackfn() {
+ return arguments[2][arguments[1]] === arguments[0];
+ }
+ var newArr = [11].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-16.js
new file mode 100644
index 000000000..40e4f1ee8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-16.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-16.js",
+
+ description: "Array.prototype.filter - 'this' of 'callbackfn' is a Boolean object when T is not an object (T is a boolean)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return this.valueOf() === false;
+ }
+
+ var obj = { 0: 11, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn, false);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-17.js
new file mode 100644
index 000000000..18d3289cd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-17.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-17.js",
+
+ description: "Array.prototype.filter -'this' of 'callbackfn' is a Number object when T is not an object (T is a number)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, o) {
+ return 5 === this.valueOf();
+ }
+
+ var obj = { 0: 11, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn, 5);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-18.js
new file mode 100644
index 000000000..cd8794c4b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-18.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-18.js",
+
+ description: "Array.prototype.filter - 'this' of 'callbackfn' is an String object when T is not an object (T is a string)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return 'hello' === this.valueOf();
+ }
+
+ var obj = { 0: 11, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn, "hello");
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-19.js
new file mode 100644
index 000000000..1af74705b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-19.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-19.js",
+
+ description: "Array.prototype.filter - non-indexed properties are not called",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return val === 8;
+ }
+
+ var obj = { 0: 11, non_index_property: 8, 2: 5, length: 20 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 0 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-2.js
new file mode 100644
index 000000000..cc4894f6e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-2.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-9-c-ii-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-2.js",
+
+description: "Array.prototype.filter - callbackfn takes 3 arguments",
+
+test: function testcase() {
+
+ var parCnt = 3;
+ var bCalled = false
+ function callbackfn(val, idx, obj)
+ {
+ bCalled = true;
+ if(arguments.length !== 3)
+ parCnt = arguments.length; //verify if callbackfn was called with 3 parameters
+ }
+
+ var srcArr = [0,1,2,3,4,5,6,7,8,9];
+ var resArr = srcArr.filter(callbackfn);
+ if(bCalled === true && parCnt === 3)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-20.js
new file mode 100644
index 000000000..2e4a4827d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-20.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-20.js",
+
+ description: "Array.prototype.filter - callbackfn called with correct parameters (thisArg is correct)",
+
+ test: function testcase() {
+
+ var thisArg = { threshold: 10 };
+
+ function callbackfn(val, idx, obj) {
+ return this === thisArg;
+ }
+
+ var obj = { 0: 11, length: 1 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn, thisArg);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-21.js
new file mode 100644
index 000000000..4b6c2d93e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-21.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-21.js",
+
+ description: "Array.prototype.filter - callbackfn called with correct parameters (kValue is correct)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (idx === 0) {
+ return val === 11;
+ }
+
+ if (idx === 1) {
+ return val === 12;
+ }
+
+ return false;
+ }
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 2 && newArr[0] === 11 && newArr[1] === 12;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-22.js
new file mode 100644
index 000000000..1b092c987
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-22.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-22.js",
+
+ description: "Array.prototype.filter - callbackfn called with correct parameters (the index k is correct)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ if (val === 11) {
+ return idx === 0;
+ }
+
+ if (val === 12) {
+ return idx === 1;
+ }
+
+ return false;
+ }
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 2 && newArr[0] === 11 && newArr[1] === 12;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-23.js
new file mode 100644
index 000000000..75aaed665
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-23.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-23.js",
+
+ description: "Array.prototype.filter - callbackfn called with correct parameters (this object O is correct)",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, length: 2 };
+
+ function callbackfn(val, idx, o) {
+ return obj === o;
+ }
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-4.js
new file mode 100644
index 000000000..2a51e13dd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-4.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-4.js",
+
+ description: "Array.prototype.filter - k values are passed in ascending numeric order",
+
+ test: function testcase() {
+
+ var arr = [0, 1, 2, 3, 4, 5];
+ var lastIdx = 0;
+ var called = 0;
+ function callbackfn(val, idx, o) {
+ called++;
+ if (lastIdx !== idx) {
+ return false;
+ } else {
+ lastIdx++;
+ return true;
+ }
+ }
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-5.js
new file mode 100644
index 000000000..87d589cae
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-5.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-5.js",
+
+ description: "Array.prototype.filter - k values are accessed during each iteration and not prior to starting the loop on an Array",
+
+ test: function testcase() {
+
+ var kIndex = [];
+ var called = 0;
+
+ //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time.
+ function callbackfn(val, idx, obj) {
+ called++;
+ //Each position should be visited one time, which means k is accessed one time during iterations.
+ if (kIndex[idx] === undefined) {
+ //when current position is visited, its previous index should has been visited.
+ if (idx !== 0 && kIndex[idx - 1] === undefined) {
+ return true;
+ }
+ kIndex[idx] = 1;
+ return false;
+ } else {
+ return true;
+ }
+ }
+ var newArr = [11, 12, 13, 14].filter(callbackfn, undefined);
+
+ return newArr.length === 0 && called === 4;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-6.js
new file mode 100644
index 000000000..f458cdc96
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-6.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-6.js",
+
+ description: "Array.prototype.filter - arguments to callbackfn are self consistent",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, length: 1 };
+ var thisArg = {};
+
+ function callbackfn() {
+ return this === thisArg &&
+ arguments[0] === 11 &&
+ arguments[1] === 0 &&
+ arguments[2] === obj;
+ }
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn, thisArg);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-7.js
new file mode 100644
index 000000000..fda6e4e76
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-7.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-7.js",
+
+ description: "Array.prototype.filter - unhandled exceptions happened in callbackfn terminate iteration",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ if (called === 1) {
+ throw new Error("Exception occurred in callbackfn");
+ }
+ return true;
+ }
+
+ var obj = { 0: 11, 4: 10, 10: 8, length: 20 };
+
+ try {
+ Array.prototype.filter.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return 1 === called && ex instanceof Error;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-8.js
new file mode 100644
index 000000000..1b5ec8af7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-8.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-8.js",
+
+ description: "Array.prototype.filter - element changed by callbackfn on previous iterations is observed",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ function callbackfn(val, idx, o) {
+ if (idx === 0) {
+ obj[idx + 1] = 8;
+ }
+ return val > 10;
+ }
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-9.js
new file mode 100644
index 000000000..d28bf7e6c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-9.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-ii-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-ii-9.js",
+
+ description: "Array.prototype.filter - callbackfn is called with 0 formal parameter",
+
+ test: function testcase() {
+
+ function callbackfn() {
+ return true;
+ }
+ var newArr = [11].filter(callbackfn);
+
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-1.js
new file mode 100644
index 000000000..34bc96084
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-1.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-1-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-1.js",
+
+ description: "Array.prototype.filter - value of returned array element equals to 'kValue'",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, 1: 9, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ return newArr[0] === obj[0] && newArr[1] === obj[1];
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-2.js
new file mode 100644
index 000000000..a7657c49e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-2.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-1-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-2.js",
+
+ description: "Array.prototype.filter - value of returned array element can be overwritten",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, 1: 9, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ try {
+ var tempVal = newArr[1];
+ newArr[1] += 1;
+ return newArr[1] !== tempVal;
+ } catch (ex) {
+ return false;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-3.js
new file mode 100644
index 000000000..bdf177b19
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-3.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-1-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-3.js",
+
+ description: "Array.prototype.filter - value of returned array element can be enumerated",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ var prop;
+ var enumerable = false;
+ for (prop in newArr) {
+ if (newArr.hasOwnProperty(prop)) {
+ if (prop === "0") {
+ enumerable = true;
+ }
+ }
+ }
+
+ return enumerable;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-4.js
new file mode 100644
index 000000000..f6b518798
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-4.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-1-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-4.js",
+
+ description: "Array.prototype.filter - value of returned array element can be changed or deleted",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, 1: 9, length: 2 };
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+
+ try {
+ var tempVal = newArr[1];
+ delete newArr[1];
+ return tempVal !== undefined && newArr[1] === undefined;
+ } catch (ex) {
+ return false;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-5.js
new file mode 100644
index 000000000..5dfedd9ce
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-5.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-1-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-5.js",
+
+ description: "Array.prototype.filter - values of 'to' are passed in acending numeric order",
+
+ test: function testcase() {
+
+ var arr = [0, 1, 2, 3, 4];
+ var lastToIdx = 0;
+ var called = 0;
+ function callbackfn(val, idx, obj) {
+ called++;
+ if (lastToIdx !== idx) {
+ return false;
+ } else {
+ lastToIdx++;
+ return true;
+ }
+ }
+ var newArr = arr.filter(callbackfn);
+
+ return newArr.length === 5 && called === 5;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-6.js
new file mode 100644
index 000000000..b25055889
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-6.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-1-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1-6.js",
+
+ description: "Array.prototype.filter - values of 'to' are accessed during each iteration when 'selected' is converted to true and not prior to starting the loop",
+
+ test: function testcase() {
+
+ var toIndex = [];
+ var called = 0;
+
+ //By below way, we could verify that 'to' would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time.
+ function callbackfn(val, idx, obj) {
+ called++;
+ //Each position should be visited one time, which means 'to' is accessed one time during iterations.
+ if (toIndex[idx] === undefined) {
+ //when current position is visited, its previous index should has been visited.
+ if (idx !== 0 && toIndex[idx - 1] === undefined) {
+ return false;
+ }
+ toIndex[idx] = 1;
+ return true;
+ } else {
+ return false;
+ }
+ }
+ var newArr = [11, 12, 13, 14].filter(callbackfn, undefined);
+
+ return newArr.length === 4 && called === 4;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1.js
new file mode 100644
index 000000000..19b4e259f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.20-9-c-iii-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-1.js",
+
+description: "Array.prototype.filter - getOwnPropertyDescriptor(all true) of returned array element",
+
+test: function testcase() {
+
+ function callbackfn(val, idx, obj){
+ if(val % 2)
+ return true;
+ else
+ return false;
+ }
+ var srcArr = [0,1,2,3,4];
+ var resArr = srcArr.filter(callbackfn);
+ if (resArr.length > 0){
+ var desc = Object.getOwnPropertyDescriptor(resArr, 1)
+ if(desc.value === 3 && //srcArr[1] = true
+ desc.writable === true &&
+ desc.enumerable === true &&
+ desc.configurable === true){
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-10.js
new file mode 100644
index 000000000..050d5b839
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-10.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-10.js",
+
+ description: "Array.prototype.filter return value of callbackfn is a number (value is negative number)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return -5;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-11.js
new file mode 100644
index 000000000..81bc08c3f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-11.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-11.js",
+
+ description: "Array.prototype.filter return value of callbackfn is a number (value is Infinity)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return Infinity;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-12.js
new file mode 100644
index 000000000..ff2295c8d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-12.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-12.js",
+
+ description: "Array.prototype.filter return value of callbackfn is a number (value is -Infinity)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return -Infinity;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-13.js
new file mode 100644
index 000000000..3ced0ecc2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-13.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-13.js",
+
+ description: "Array.prototype.filter return value of callbackfn is a number (value is NaN)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return NaN;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 0 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-14.js
new file mode 100644
index 000000000..71558a5aa
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-14.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-14.js",
+
+ description: "Array.prototype.filter return value of callbackfn is an empty string",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return "";
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 0 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-15.js
new file mode 100644
index 000000000..0740ed968
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-15.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-15.js",
+
+ description: "Array.prototype.filter return value of callbackfn is a non-empty string",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return "non-empty string";
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-16.js
new file mode 100644
index 000000000..fe4891d48
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-16.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-16.js",
+
+ description: "Array.prototype.filter return value of callbackfn is a Function object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return function () { };
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-17.js
new file mode 100644
index 000000000..d4c2f6a93
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-17.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-17.js",
+
+ description: "Array.prototype.filter return value of callbackfn is an Array object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new Array(10);
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-18.js
new file mode 100644
index 000000000..80ad3fcf1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-18.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-18.js",
+
+ description: "Array.prototype.filter return value of callbackfn is a String object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new String();
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-19.js
new file mode 100644
index 000000000..3f05d206e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-19.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-19.js",
+
+ description: "Array.prototype.filter return value of callbackfn is a Boolean object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new Boolean();
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-2.js
new file mode 100644
index 000000000..56ed867a5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-2.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is undefined",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, o) {
+ accessed = true;
+ return undefined;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 0 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-20.js
new file mode 100644
index 000000000..3219c2d85
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-20.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-20.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is a Number object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new Number();
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-21.js
new file mode 100644
index 000000000..14e437593
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-21.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-21.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is the Math object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return Math;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-22.js
new file mode 100644
index 000000000..869df1d0f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-22.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-22.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is a Date object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new Date();
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-23.js
new file mode 100644
index 000000000..dc26b0c59
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-23.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-23.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is a RegExp object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new RegExp();
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-24.js
new file mode 100644
index 000000000..6b118a500
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-24.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-24.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is the JSON object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return JSON;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-25.js
new file mode 100644
index 000000000..21435b586
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-25.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-25.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is an Error object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new EvalError();
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-26.js
new file mode 100644
index 000000000..cb177b099
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-26.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-26.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is the Arguments object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return arguments;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-28.js
new file mode 100644
index 000000000..6ac56524a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-28.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-28.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is the global object",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return fnGlobalObject();
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-29.js
new file mode 100644
index 000000000..2d93a4171
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-29.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-29.js",
+
+ description: "Array.prototype.filter - false prevents element added to output Array",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(val, idx, obj) {
+ called++;
+ return val > 10;
+ }
+
+ var obj = { 0: 11, 1: 8, length: 20 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 1 && newArr[0] !== 8 && called === 2;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-3.js
new file mode 100644
index 000000000..147b353e8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-3.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-3.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is null",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return null;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 0 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-30.js
new file mode 100644
index 000000000..d42514691
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-30.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-30.js",
+
+ description: "Array.prototype.filter - return value (new Boolean(false)) of callbackfn is treated as true value",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return new Boolean(false);
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-4.js
new file mode 100644
index 000000000..2d481291a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-4.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is a boolean (value is false)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return false;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 0 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-5.js
new file mode 100644
index 000000000..354e391d5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-5.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-5.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is a boolean (value is true)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return true;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ var newArr = Array.prototype.filter.call(obj, callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-6.js
new file mode 100644
index 000000000..f356af700
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-6.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-6.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is a number (value is 0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return 0;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 0 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-7.js
new file mode 100644
index 000000000..897699ee5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-7.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-7.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is a number (value is +0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return +0;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 0 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-8.js
new file mode 100644
index 000000000..be3b51ff8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-8.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-8.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is a nunmber (value is -0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(val, idx, obj) {
+ accessed = true;
+ return -0;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 0 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-9.js
new file mode 100644
index 000000000..94df6be2a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-9.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.20-9-c-iii-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.20/15.4.4.20-9-c-iii-9.js",
+
+ description: "Array.prototype.filter - return value of callbackfn is a number (value is positive number)",
+
+ test: function testcase() {
+
+ function callbackfn(val, idx, obj) {
+ return 5;
+ }
+
+ var newArr = [11].filter(callbackfn);
+ return newArr.length === 1 && newArr[0] === 11;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.filter);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-1.js
new file mode 100644
index 000000000..fb19acb43
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-1.js
@@ -0,0 +1,36 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-0-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-1.js",
+
+description: "Array.prototype.reduce must exist as a function",
+
+test: function testcase() {
+ var f = Array.prototype.reduce;
+ if (typeof(f) === "function") {
+ return true;
+ }
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-2.js
new file mode 100644
index 000000000..9cb0ae364
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-2.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-0-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-0-2.js",
+
+description: "Array.prototype.reduce.length must be 1",
+
+test: function testcase() {
+ if (Array.prototype.reduce.length === 1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-1.js
new file mode 100644
index 000000000..e3f3c8bf6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-1.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-1.js",
+
+ description: "Array.prototype.reduce applied to undefined",
+
+ test: function testcase() {
+ try {
+ Array.prototype.reduce.call(undefined);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-10.js
new file mode 100644
index 000000000..f0511d952
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-10.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-10.js",
+
+ description: "Array.prototype.reduce applied to the Math object",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return ('[object Math]' === Object.prototype.toString.call(obj));
+ }
+
+ try {
+ Math.length = 1;
+ Math[0] = 1;
+ return Array.prototype.reduce.call(Math, callbackfn, 1);
+ } finally {
+ delete Math[0];
+ delete Math.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-11.js
new file mode 100644
index 000000000..81bbc11bd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-11.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-11.js",
+
+ description: "Array.prototype.reduce applied to Date object",
+
+ test: function testcase() {
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return obj instanceof Date;
+ }
+
+ var obj = new Date();
+ obj.length = 1;
+ obj[0] = 1;
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-12.js
new file mode 100644
index 000000000..1c0903863
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-12.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-12.js",
+
+ description: "Array.prototype.reduce applied to RegExp object",
+
+ test: function testcase() {
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return obj instanceof RegExp;
+ }
+
+ var obj = new RegExp();
+ obj.length = 1;
+ obj[0] = 1;
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-13.js
new file mode 100644
index 000000000..cd0f3fa33
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-13.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-13.js",
+
+ description: "Array.prototype.reduce applied to the JSON object",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return ('[object JSON]' === Object.prototype.toString.call(obj));
+ }
+
+ try {
+ JSON.length = 1;
+ JSON[0] = 1;
+ return Array.prototype.reduce.call(JSON, callbackfn, 1);
+ } finally {
+ delete JSON.length;
+ delete JSON[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-14.js
new file mode 100644
index 000000000..9e3f160dc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-14.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-14.js",
+
+ description: "Array.prototype.reduce applied to Error object",
+
+ test: function testcase() {
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return obj instanceof Error;
+ }
+
+ var obj = new Error();
+ obj.length = 1;
+ obj[0] = 1;
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-15.js
new file mode 100644
index 000000000..5fcaa4d20
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-15.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-15.js",
+
+ description: "Array.prototype.reduce applied to the Arguments object",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return ('[object Arguments]' === Object.prototype.toString.call(obj));
+ }
+
+ var obj = (function () {
+ return arguments;
+ }("a", "b"));
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-2.js
new file mode 100644
index 000000000..c5686281b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-2.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-2.js",
+
+ description: "Array.prototype.reduce applied to null",
+
+ test: function testcase() {
+ try {
+ Array.prototype.reduce.call(null);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-3.js
new file mode 100644
index 000000000..7c6038d54
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-3.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-3.js",
+
+ description: "Array.prototype.reduce applied to boolean primitive",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return obj instanceof Boolean;
+ }
+
+ try {
+ Boolean.prototype[0] = true;
+ Boolean.prototype.length = 1;
+
+ return Array.prototype.reduce.call(false, callbackfn, 1);
+
+ } finally {
+ delete Boolean.prototype[0];
+ delete Boolean.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-4.js
new file mode 100644
index 000000000..02f8819af
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-4.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-4.js",
+
+ description: "Array.prototype.reduce applied to Boolean object",
+
+ test: function testcase() {
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return obj instanceof Boolean;
+ }
+
+ var obj = new Boolean(true);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-5.js
new file mode 100644
index 000000000..b4a907fc0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-5.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-5.js",
+
+ description: "Array.prototype.reduce applied to number primitive",
+
+ test: function testcase() {
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return obj instanceof Number;
+ }
+
+ try {
+ Number.prototype[0] = 1;
+ Number.prototype.length = 1;
+
+ return Array.prototype.reduce.call(2.5, callbackfn, 1);
+ } finally {
+ delete Number.prototype[0];
+ delete Number.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-6.js
new file mode 100644
index 000000000..aa8c8c2bc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-6.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-6.js",
+
+ description: "Array.prototype.reduce applied to Number object",
+
+ test: function testcase() {
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return obj instanceof Number;
+ }
+
+ var obj = new Number(-128);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+ return Array.prototype.reduce.call(obj, callbackfn, 1);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-7.js
new file mode 100644
index 000000000..05a9e2284
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-7.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-7.js",
+
+ description: "Array.prototype.reduce applied to string primitive",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return obj instanceof String;
+ }
+
+ return Array.prototype.reduce.call("abc", callbackfn, 1);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-8.js
new file mode 100644
index 000000000..c9646a7b2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-8.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-8.js",
+
+ description: "Array.prototype.reduce applied to String object",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return obj instanceof String;
+ }
+
+ var obj = new String("abc");
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-9.js
new file mode 100644
index 000000000..5f3218586
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-9.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-1-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-1-9.js",
+
+ description: "Array.prototype.reduce applied to Function object",
+
+ test: function testcase() {
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return obj instanceof Function;
+ }
+
+ var obj = function (a, b) {
+ return a + b;
+ };
+ obj[0] = 11;
+ obj[1] = 9;
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-1.js
new file mode 100644
index 000000000..7c3140574
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-1.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-10-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-1.js",
+
+description: "Array.prototype.reduce doesn't mutate the Array on which it is called on",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ return 1;
+ }
+ var srcArr = [1,2,3,4,5];
+ srcArr.reduce(callbackfn);
+ if(srcArr[0] === 1 &&
+ srcArr[1] === 2 &&
+ srcArr[2] === 3 &&
+ srcArr[3] === 4 &&
+ srcArr[4] === 5)
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-2.js
new file mode 100644
index 000000000..5a233c527
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-2.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-10-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-2.js",
+
+description: "Array.prototype.reduce reduces the array in ascending order of indices",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ return prevVal + curVal;
+ }
+ var srcArr = ['1','2','3','4','5'];
+ if(srcArr.reduce(callbackfn) === '12345')
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-3.js
new file mode 100644
index 000000000..77173b896
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-3.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-10-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-3.js",
+
+description: "Array.prototype.reduce - subclassed array of length 1",
+
+test: function testcase() {
+ foo.prototype = [1];
+ function foo() {}
+ var f = new foo();
+
+ function cb(){}
+ if(f.reduce(cb) === 1)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-4.js
new file mode 100644
index 000000000..18412c57c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-4.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-10-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-4.js",
+
+description: "Array.prototype.reduce - subclassed array with length more than 1",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3, 4);
+ function foo() {}
+ var f = new foo();
+
+ function cb(prevVal, curVal, idx, obj){return prevVal + curVal;}
+ if(f.reduce(cb) === 10)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-5.js
new file mode 100644
index 000000000..c0345f9e2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-5.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-10-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-5.js",
+
+description: "Array.prototype.reduce reduces the array in ascending order of indices(initialvalue present)",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ return prevVal + curVal;
+ }
+ var srcArr = ['1','2','3','4','5'];
+ if(srcArr.reduce(callbackfn,'0') === '012345')
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-6.js
new file mode 100644
index 000000000..ee1b67ba6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-6.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-10-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-6.js",
+
+description: "Array.prototype.reduce - subclassed array when initialvalue provided",
+
+test: function testcase() {
+ foo.prototype = [1,2,3,4];
+ function foo() {}
+ var f = new foo();
+
+ function cb(prevVal, curVal, idx, obj){return prevVal + curVal;}
+ if(f.reduce(cb,-1) === 9)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-7.js
new file mode 100644
index 000000000..b22276e49
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-7.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-10-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-7.js",
+
+description: "Array.prototype.reduce - subclassed array with length 1 and initialvalue provided",
+
+test: function testcase() {
+ foo.prototype = [1];
+ function foo() {}
+ var f = new foo();
+
+ function cb(prevVal, curVal, idx, obj){return prevVal + curVal;}
+ if(f.reduce(cb,-1) === 0)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-8.js
new file mode 100644
index 000000000..589cb6d02
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-8.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-10-8",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-10-8.js",
+
+description: "Array.prototype.reduce doesn't visit expandos",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ callCnt++;
+ return curVal;
+ }
+ var srcArr = ['1','2','3','4','5'];
+ srcArr["i"] = 10;
+ srcArr[true] = 11;
+ srcArr.reduce(callbackfn);
+
+ if(callCnt == 4)
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-1.js
new file mode 100644
index 000000000..2d3c67c62
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-1.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-1.js",
+
+ description: "Array.prototype.reduce - 'length' is own data property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (obj.length === 2);
+ }
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: 2
+ };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-10.js
new file mode 100644
index 000000000..bc3a5da4b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-10.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-10.js",
+
+ description: "Array.prototype.reduce applied to Array-like object, 'length' is an inherited accessor property",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (obj.length === 2);
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.reduce.call(child, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-11.js
new file mode 100644
index 000000000..12ccda2f6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-11.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-11.js",
+
+ description: "Array.prototype.reduce applied to Array-like object, 'length' is an own accessor property without a get function",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 12
+ };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-12.js
new file mode 100644
index 000000000..6aa7553bf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-12.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-12.js",
+
+ description: "Array.prototype.reduce - 'length' is own accessor property without a get function that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ try {
+ Object.defineProperty(Object.prototype, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var obj = { 0: 12, 1: 11 };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed;
+ } finally {
+ delete Object.prototype.length;
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-13.js
new file mode 100644
index 000000000..f8e850312
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-13.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-13.js",
+
+ description: "Array.prototype.reduce applied to Array-like object that 'length' is inherited accessor property without a get function",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 11;
+ child[1] = 12;
+
+ return Array.prototype.reduce.call(child, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-14.js
new file mode 100644
index 000000000..e857eb6a2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-14.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-14.js",
+
+ description: "Array.prototype.reduce applied to the Array-like object that 'length' property doesn't exist",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 11, 1: 12 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-15.js
new file mode 100644
index 000000000..781096e86
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-15.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-15.js",
+
+ description: "Array.prototype.reduce - 'length' is property of the global object",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (obj.length === 2);
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 12;
+ fnGlobalObject()[1] = 11;
+ fnGlobalObject()[2] = 9;
+ fnGlobalObject().length = 2;
+ return Array.prototype.reduce.call(fnGlobalObject(), callbackfn, 1) === true;
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-17.js
new file mode 100644
index 000000000..1f9cc0199
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-17.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-17.js",
+
+ description: "Array.prototype.reduce applied to the Arguments object, which implements its own property get method",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (obj.length === 2);
+ }
+
+ var func = function (a, b) {
+ arguments[2] = 9;
+ return Array.prototype.reduce.call(arguments, callbackfn, 1);
+ };
+
+ return func(12, 11) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-18.js
new file mode 100644
index 000000000..8d740f90d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-18.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-18.js",
+
+ description: "Array.prototype.reduce applied to String object, which implements its own property get method",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (obj.length === 3);
+ }
+
+ var str = new String("012");
+
+ return Array.prototype.reduce.call(str, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-19.js
new file mode 100644
index 000000000..83c4549b0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-19.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-19.js",
+
+ description: "Array.prototype.reduce applied to Function object, which implements its own property get method",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (obj.length === 2);
+ }
+
+ var fun = function (a, b) {
+ return a + b;
+ };
+ fun[0] = 12;
+ fun[1] = 11;
+ fun[2] = 9;
+
+ return Array.prototype.reduce.call(fun, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-2.js
new file mode 100644
index 000000000..10ffb32f8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-2.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-2.js",
+
+ description: "Array.prototype.reduce - 'length' is own data property on an Array",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (obj.length === 2);
+ }
+
+ return [12, 11].reduce(callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-3.js
new file mode 100644
index 000000000..7db7e92a2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-3.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-3.js",
+
+ description: "Array.prototype.reduce - 'length' is an own data property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (obj.length === 2);
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.reduce.call(child, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-4.js
new file mode 100644
index 000000000..4fc4386f4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-4.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-4.js",
+
+ description: "Array.prototype.reduce - 'length' is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+ var storeProtoLength;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (obj.length === 2);
+ }
+
+ try {
+ storeProtoLength = Array.prototype.length;
+ Array.prototype.length = 0;
+
+ return [12, 11].reduce(callbackfn, 1) === true;
+ } finally {
+ Array.prototype.length = storeProtoLength;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-5.js
new file mode 100644
index 000000000..ab9fa80bc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-5.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-5.js",
+
+ description: "Array.prototype.reduce applied to Array-like object, 'length' is an own data property that overrides an inherited accessor property",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (obj.length === 2);
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ Object.defineProperty(child, "length", {
+ value: 2,
+ configurable: true
+ });
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.reduce.call(child, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-6.js
new file mode 100644
index 000000000..ed15ee56d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-6.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-6.js",
+
+ description: "Array.prototype.reduce applied to Array-like object, 'length' is an inherited data property",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (obj.length === 2);
+ }
+
+ var proto = { length: 2 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.reduce.call(child, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-7.js
new file mode 100644
index 000000000..2a2a0fc72
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-7.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-7.js",
+
+ description: "Array.prototype.reduce applied to Array-like object, 'length' is an own accessor property",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (obj.length === 2);
+ }
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ obj[0] = 12;
+ obj[1] = 11;
+ obj[2] = 9;
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-8.js
new file mode 100644
index 000000000..56c0ee727
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-8.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-8.js",
+
+ description: "Array.prototype.reduce applied to Array-like object, 'length' is an own accessor property that overrides an inherited data property",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (obj.length === 2);
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.reduce.call(child, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-9.js
new file mode 100644
index 000000000..9fac26fb5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-9.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-2-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-2-9.js",
+
+ description: "Array.prototype.reduce applied to Array-like object, 'length' is an own accessor property that overrides an inherited accessor property",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (obj.length === 2);
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.reduce.call(child, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-1.js
new file mode 100644
index 000000000..674e94b8b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-1.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-1.js",
+
+ description: "Array.prototype.reduce - value of 'length' is undefined",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return 2;
+ }
+
+ var obj = { 0: 0, 1: 1, length: undefined };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-10.js
new file mode 100644
index 000000000..a878d5479
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-10.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-10.js",
+
+ description: "Array.prototype.reduce - value of 'length' is number primitive (value is NaN)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return 2;
+ }
+
+ var obj = { 0: 9, length: NaN };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-11.js
new file mode 100644
index 000000000..ec4dac4bb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-11.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-11.js",
+
+ description: "Array.prototype.reduce - 'length' is a string containing a positive number",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 1);
+ }
+
+ var obj = { 1: 11, 2: 9, length: "2" };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-12.js
new file mode 100644
index 000000000..f576a3981
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-12.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-12.js",
+
+ description: "Array.prototype.reduce - 'length' is a string containing a negative number",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 1);
+ }
+
+ var obj = { 1: 11, 2: 9, length: "-4294967294" };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-13.js
new file mode 100644
index 000000000..85303d077
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-13.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-13.js",
+
+ description: "Array.prototype.reduce - 'length' is a string containing a decimal number",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 1);
+ }
+
+ var obj = { 1: 11, 2: 9, length: "2.5" };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-14.js
new file mode 100644
index 000000000..c18ab3f94
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-14.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-14.js",
+
+ description: "Array.prototype.reduce - 'length' is a string containing +/-Infinity",
+
+ test: function testcase() {
+
+ var accessed1 = false;
+ var accessed2 = false;
+ var accessed3 = false;
+
+ function callbackfn1(prevVal, curVal, idx, obj) {
+ accessed1 = true;
+ return 2;
+ }
+
+ function callbackfn2(prevVal, curVal, idx, obj) {
+ accessed2 = true;
+ return 2;
+ }
+
+ function callbackfn3(prevVal, curVal, idx, obj) {
+ accessed3 = true;
+ return 2;
+ }
+
+ var obj1 = { 0: 9, length: "Infinity" };
+ var obj2 = { 0: 9, length: "-Infinity" };
+ var obj3 = { 0: 9, length: "+Infinity" };
+
+ return Array.prototype.reduce.call(obj1, callbackfn1, 1) === 1 &&
+ Array.prototype.reduce.call(obj2, callbackfn2, 1) === 1 &&
+ Array.prototype.reduce.call(obj3, callbackfn3, 1) === 1 &&
+ !accessed1 && !accessed2 && !accessed3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-15.js
new file mode 100644
index 000000000..ad30b2604
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-15.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-15.js",
+
+ description: "Array.prototype.reduce - 'length' is a string containing an exponential number",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 1);
+ }
+
+ var obj = { 1: 11, 2: 9, length: "2E0" };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-16.js
new file mode 100644
index 000000000..dfe49a7cd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-16.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-16.js",
+
+ description: "Array.prototype.reduce - 'length' is a string containing a hex number",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 1);
+ }
+
+ var obj = { 1: 11, 2: 9, length: "0x0002" };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-17.js
new file mode 100644
index 000000000..104b3265f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-17.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-17.js",
+
+ description: "Array.prototype.reduce - 'length' is a string containing a number with leading zeros",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 1);
+ }
+
+ var obj = { 1: 11, 2: 9, length: "0002.00" };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-18.js
new file mode 100644
index 000000000..1fc0fed40
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-18.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-18.js",
+
+ description: "Array.prototype.reduce - value of 'length' is a string that can't convert to a number",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return 2;
+ }
+
+ var obj = { 0: 9, length: "asdf!_" };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-19.js
new file mode 100644
index 000000000..170e81c6e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-19.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-19.js",
+
+ description: "Array.prototype.reduce - value of 'length' is an Object which has an own toString method",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 1);
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: {
+ toString: function () {
+ return '2';
+ }
+ }
+ };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-2.js
new file mode 100644
index 000000000..b65057233
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-2.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-2.js",
+
+ description: "Array.prototype.reduce - value of 'length' is a boolean (value is true)",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 0);
+ }
+
+ var obj = { 0: 11, 1: 9, length: true };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-20.js
new file mode 100644
index 000000000..afaec33d6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-20.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-20.js",
+
+ description: "Array.prototype.reduce - value of 'length' is an object which has an own valueOf method",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 1);
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: {
+ valueOf: function () {
+ return 2;
+ }
+ }
+ };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-21.js
new file mode 100644
index 000000000..2f307e3a2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-21.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-21.js",
+
+ description: "Array.prototype.reduce - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string",
+
+ test: function testcase() {
+
+ var valueOfOccured = false;
+ var toStringOccured = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 1);
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: {
+ valueOf: function () {
+ valueOfOccured = true;
+ return {};
+ },
+ toString: function () {
+ toStringOccured = true;
+ return '2';
+ }
+ }
+ };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true && valueOfOccured && toStringOccured;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-22.js
new file mode 100644
index 000000000..0981455f6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-22.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-22.js",
+
+ description: "Array.prototype.reduce throws TypeError exception - 'length' is an object with toString and valueOf methods that don’t return primitive values",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var valueOfAccessed = false;
+ var toStringAccessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return true;
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 12,
+
+ length: {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ },
+ toString: function () {
+ toStringAccessed = true;
+ return {};
+ }
+ }
+ };
+
+ try {
+ Array.prototype.reduce.call(obj, callbackfn, 1);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && !accessed && toStringAccessed && valueOfAccessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-23.js
new file mode 100644
index 000000000..697ccb05b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-23.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-23.js",
+
+ description: "Array.prototype.reduce uses inherited valueOf method - 'length' is an object with an own toString and inherited valueOf methods",
+
+ test: function testcase() {
+
+ var valueOfAccessed = false;
+ var toStringAccessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 1);
+ }
+
+ var proto = {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ child.toString = function () {
+ toStringAccessed = true;
+ return '1';
+ };
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: child
+ };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true && valueOfAccessed && !toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-24.js
new file mode 100644
index 000000000..eedca6bdb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-24.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-24.js",
+
+ description: "Array.prototype.reduce - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 1);
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: 2.685
+ };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-25.js
new file mode 100644
index 000000000..26ef9c1b6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-25.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-25.js",
+
+ description: "Array.prototype.reduce - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 1);
+ }
+
+ var obj = {
+ 1: 11,
+ 2: 9,
+ length: -4294967294.5
+ };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-28.js
new file mode 100644
index 000000000..87948f3d5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-28.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-28.js",
+
+ description: "Array.prototype.reduce - value of 'length' is boundary value (2^32)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return 2;
+ }
+
+ var obj = {
+ 0: 12,
+ length: 4294967296
+ };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-29.js
new file mode 100644
index 000000000..41c4b867e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-29.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-29.js",
+
+ description: "Array.prototype.reduce - value of 'length' is boundary value (2^32 + 1)",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 0);
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 9,
+ length: 4294967297
+ };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-3.js
new file mode 100644
index 000000000..c37887ac0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-3.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-3.js",
+
+ description: "Array.prototype.reduce - value of 'length' is a number (value is 0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return 2;
+ }
+
+ var obj = { 0: 1, 1: 1, length: 0 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-4.js
new file mode 100644
index 000000000..d28d6ddd2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-4.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-4.js",
+
+ description: "Array.prototype.reduce - value of 'length' is a number (value is +0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return 2;
+ }
+
+ var obj = { 0: 11, length: +0 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-5.js
new file mode 100644
index 000000000..53f88e671
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-5.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-5.js",
+
+ description: "Array.prototype.reduce - value of 'length' is a number (value is -0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return 2;
+ }
+
+ var obj = { 0: 11, length: -0 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-6.js
new file mode 100644
index 000000000..4e40e72e4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-6.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-6.js",
+
+ description: "Array.prototype.reduce - value of 'length' is a number (value is positive)",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 1);
+ }
+
+ var obj = { 1: 11, 2: 9, length: 2 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-7.js
new file mode 100644
index 000000000..7f3b28947
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-7.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-7.js",
+
+ description: "Array.prototype.reduce - value of 'length' is a number (value is negative)",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal === 11 && idx === 1);
+ }
+
+ var obj = { 1: 11, 2: 9, length: -4294967294 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-8.js
new file mode 100644
index 000000000..63e3d8fa5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-8.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-8.js",
+
+ description: "Array.prototype.reduce - value of 'length' is a number (value is Infinity)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return 2;
+ }
+
+ var obj = { 0: 9, length: Infinity };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-9.js
new file mode 100644
index 000000000..9cbd79ec8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-9.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-3-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-3-9.js",
+
+ description: "Array.prototype.reduce - value of 'length' is a number (value is -Infinity)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: -Infinity };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-1.js
new file mode 100644
index 000000000..de2bab9e0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-1.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-4-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-1.js",
+
+description: "Array.prototype.reduce throws TypeError if callbackfn is undefined",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduce();
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-10.js
new file mode 100644
index 000000000..7486e4e27
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-10.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-4-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-10.js",
+
+ description: "Array.prototype.reduce - the exception is not thrown if exception was thrown by step 2",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-11.js
new file mode 100644
index 000000000..66fd936a2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-11.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-4-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-11.js",
+
+ description: "Array.prototype.reduce - the exception is not thrown if exception was thrown by step 3",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-12.js
new file mode 100644
index 000000000..31b3e606e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-12.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-4-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-12.js",
+
+ description: "Array.prototype.reduce - 'callbackfn' is a function",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return curVal > 10;
+ }
+
+ return [11, 9].reduce(callbackfn, 1) === false && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-15.js
new file mode 100644
index 000000000..038813387
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-15.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-4-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-15.js",
+
+ description: "Array.prototype.reduce - calling with no callbackfn is the same as passing undefined for callbackfn",
+
+ test: function testcase() {
+ var obj = { 10: 10 };
+ var lengthAccessed = false;
+ var loopAccessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ lengthAccessed = true;
+ return 20;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ loopAccessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && lengthAccessed && !loopAccessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-2.js
new file mode 100644
index 000000000..20ba2697a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-2.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-4-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-2.js",
+
+description: "Array.prototype.reduce throws ReferenceError if callbackfn is unreferenced",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduce(foo);
+ }
+ catch(e) {
+ if(e instanceof ReferenceError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-3.js
new file mode 100644
index 000000000..de0a6669d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-3.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-4-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-3.js",
+
+description: "Array.prototype.reduce throws TypeError if callbackfn is null",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduce(null);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-4.js
new file mode 100644
index 000000000..3b14e4b9a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-4.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-4-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-4.js",
+
+description: "Array.prototype.reduce throws TypeError if callbackfn is boolean",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduce(true);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-5.js
new file mode 100644
index 000000000..1639215b2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-5.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-4-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-5.js",
+
+description: "Array.prototype.reduce throws TypeError if callbackfn is number",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduce(5);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-6.js
new file mode 100644
index 000000000..a145ee955
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-6.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-4-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-6.js",
+
+description: "Array.prototype.reduce throws TypeError if callbackfn is string",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduce("abc");
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-7.js
new file mode 100644
index 000000000..9373ba433
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-7.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-4-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-7.js",
+
+description: "Array.prototype.reduce throws TypeError if callbackfn is Object without [[Call]] internal method",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduce(new Object());
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-8.js
new file mode 100644
index 000000000..e8fd8885a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-8.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-4-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-8.js",
+
+ description: "Array.prototype.reduce - side effects produced by step 2 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-9.js
new file mode 100644
index 000000000..489fd066e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-9.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-4-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-4-9.js",
+
+ description: "Array.prototype.reduce - side effects produced by step 3 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "2";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-1.js
new file mode 100644
index 000000000..4dcbf2048
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-1.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-5-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-1.js",
+
+description: "Array.prototype.reduce throws TypeError if 'length' is 0 (empty array), no initVal",
+
+test: function testcase() {
+ function cb(){}
+
+ try {
+ [].reduce(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-10.js
new file mode 100644
index 000000000..70771b5b8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-10.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-5-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-10.js",
+
+ description: "Array.prototype.reduce - if exception occurs, it occurs after any side-effects that might be produced by step 2",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal > 10);
+ }
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-11.js
new file mode 100644
index 000000000..cdf41bb3d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-11.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-5-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-11.js",
+
+ description: "Array.prototype.reduce - if the exception occurs, it occurs after any side-effects that might be produced by step 3",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal > 10);
+ }
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "0";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-12.js
new file mode 100644
index 000000000..db46fd6c7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-12.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-5-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-12.js",
+
+ description: "Array.prototype.reduce - the exception is not thrown if exception was thrown by step 2",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal > 10);
+ }
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-13.js
new file mode 100644
index 000000000..2a93dfbcd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-13.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-5-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-13.js",
+
+ description: "Array.prototype.reduce - the exception is not thrown if exception was thrown by step 3",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return (curVal > 10);
+ }
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+
+ try {
+ Array.prototype.reduce.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-2.js
new file mode 100644
index 000000000..98f0372ca
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-5-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-2.js",
+
+description: "Array.prototype.reduce throws TypeError if 'length' is 0 (subclassed Array, length overridden to null (type conversion)), no initVal",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = null;
+
+ function cb(){}
+ try {
+ f.reduce(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-3.js
new file mode 100644
index 000000000..7b3777092
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-3.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-5-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-3.js",
+
+description: "Array.prototype.reduce throws TypeError if 'length' is 0 (subclassed Array, length overridden to false (type conversion)), no initVal",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = false;
+
+ function cb(){}
+ try {
+ f.reduce(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-4.js
new file mode 100644
index 000000000..0f439f42d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-5-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-4.js",
+
+description: "Array.prototype.reduce throws TypeError if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion)), no initVal",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 0;
+
+ function cb(){}
+ try {
+ f.reduce(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-5.js
new file mode 100644
index 000000000..71306e94f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-5.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-5-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-5.js",
+
+description: "Array.prototype.reduce throws TypeError if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion)), no initVal",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = '0';
+
+ function cb(){}
+ try {
+ f.reduce(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-6.js
new file mode 100644
index 000000000..f077a786d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-6.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-5-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-6.js",
+
+description: "Array.prototype.reduce throws TypeError if 'length' is 0 (subclassed Array, length overridden with obj with valueOf), no initVal",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { valueOf: function () { return 0;}};
+ f.length = o;
+
+ function cb(){}
+ try {
+ f.reduce(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-7.js
new file mode 100644
index 000000000..ecd8f932e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-7.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-5-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-7.js",
+
+description: "Array.prototype.reduce throws TypeError if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString)), no initVal",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { toString: function () { return '0';}};
+ f.length = o;
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+
+ function cb(){}
+ try {
+ f.reduce(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-8.js
new file mode 100644
index 000000000..67044ee2a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-8.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-5-8",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-8.js",
+
+description: "Array.prototype.reduce throws TypeError if 'length' is 0 (subclassed Array, length overridden with []), no initVal",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ function cb(){}
+ try {
+ f.reduce(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-9.js
new file mode 100644
index 000000000..e3a3ab738
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-9.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-5-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-5-9.js",
+
+ description: "Array.prototype.reduce - 'initialValue' is returned if 'len' is 0 and 'initialValue' is present",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ return [].reduce(callbackfn, 3) === 3 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-1.js
new file mode 100644
index 000000000..98e85a51b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-1.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-7-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-1.js",
+
+description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (empty array)",
+
+test: function testcase() {
+ function cb(){}
+
+ try {
+ if([].reduce(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-10.js
new file mode 100644
index 000000000..3c7a4b71a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-10.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-7-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-10.js",
+
+ description: "Array.prototype.reduce - 'initialValue' is present",
+
+ test: function testcase() {
+
+ var str = "initialValue is present";
+ return str === [].reduce(function () { }, str);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-11.js
new file mode 100644
index 000000000..1719505ad
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-11.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-7-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-11.js",
+
+ description: "Array.prototype.reduce - 'initialValue' is not present",
+
+ test: function testcase() {
+
+ var str = "initialValue is not present";
+ return str === [str].reduce(function () { });
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-2.js
new file mode 100644
index 000000000..d1627cf84
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-2.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-7-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-2.js",
+
+description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to null (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = null;
+
+ function cb(){}
+ try {
+ if(f.reduce(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-3.js
new file mode 100644
index 000000000..bf9537d95
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-3.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-7-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-3.js",
+
+description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to false (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = false;
+
+ function cb(){}
+ try {
+ if(f.reduce(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-4.js
new file mode 100644
index 000000000..ff198c69a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-4.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-7-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-4.js",
+
+description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to 0 (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 0;
+
+ function cb(){}
+ try {
+ if(f.reduce(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-5.js
new file mode 100644
index 000000000..fc8335180
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-5.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-7-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-5.js",
+
+description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to '0' (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = '0';
+
+ function cb(){}
+ try {
+ if(f.reduce(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-6.js
new file mode 100644
index 000000000..e81f617e4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-6.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-7-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-6.js",
+
+description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with obj with valueOf)",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { valueOf: function () { return 0;}};
+ f.length = o;
+
+ function cb(){}
+ try {
+ if(f.reduce(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-7.js
new file mode 100644
index 000000000..d2972ef28
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-7.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-7-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-7.js",
+
+description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with obj w/o valueOf (toString))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { toString: function () { return '0';}};
+ f.length = o;
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+
+ function cb(){}
+ try {
+ if(f.reduce(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-8.js
new file mode 100644
index 000000000..ea2c984dc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-8.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-7-8",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-8.js",
+
+description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with [])",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ function cb(){}
+ try {
+ if(f.reduce(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-9.js
new file mode 100644
index 000000000..af884e15a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-9.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-7-9",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-7-9.js",
+
+description: "Array.prototype.reduce returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with [0])",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [0];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ function cb(){}
+ try {
+ if(f.reduce(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-1.js
new file mode 100644
index 000000000..1e16d10b8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-1.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-1.js",
+
+ description: "Array.prototype.reduce - no observable effects occur if 'len' is 0",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ var obj = { length: 0 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ accessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-2.js
new file mode 100644
index 000000000..47a61de1a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-2.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-2.js",
+
+ description: "Array.prototype.reduce - modifications to length don't change number of iterations in step 9",
+
+ test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ return idx;
+ }
+
+ var obj = { 3: 12, 4: 9, length: 4 };
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ obj.length = 10;
+ return 11;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.reduce.call(obj, callbackfn) === 3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-3.js
new file mode 100644
index 000000000..99b10c692
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-3.js
@@ -0,0 +1,71 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-3.js",
+
+ description: "Array.prototype.reduce - loop is broken once 'kPresent' is true",
+
+ test: function testcase() {
+
+ var called = 0;
+ var testResult = false;
+ var firstCalled = 0;
+ var secondCalled = 0;
+
+ function callbackfn(prevVal, val, idx, obj) {
+ if (called === 0) {
+ testResult = (idx === 1);
+ }
+ called++;
+ }
+
+ var arr = [, , ];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ firstCalled++;
+ return 11;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ secondCalled++;
+ return 9;
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn);
+ return testResult && firstCalled === 1 && secondCalled === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-1.js
new file mode 100644
index 000000000..2e49f8644
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-1.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-ii-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-1.js",
+
+ description: "Array.prototype.reduce - added properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ var obj = { };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ obj[1] = "accumulator";
+ return 3;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.reduce.call(obj, function () { }) === "accumulator";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-2.js
new file mode 100644
index 000000000..e6bc95bc3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-ii-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-ii-2.js",
+
+ description: "Array.prototype.reduce - deleted properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ var obj = { 1: "accumulator", 2: "another" };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ delete obj[1];
+ return 3;
+ },
+ configurable: true
+ });
+
+ return "accumulator" !== Array.prototype.reduce.call(obj, function () { });
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-1.js
new file mode 100644
index 000000000..63f4f126c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-1.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-1.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 0);
+ }
+ }
+
+ var obj = { 0: 0, 1: 1, 2: 2, length: 2 };
+ Array.prototype.reduce.call(obj, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-10.js
new file mode 100644
index 000000000..7437aeec6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-10.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-10.js",
+
+ description: "Array.prototype.reduce - when element to be retrieved is own accessor property on an Array",
+
+ test: function testcase() {
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 0);
+ }
+ }
+
+ var arr = [, 1, 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-11.js
new file mode 100644
index 000000000..09422636b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-11.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-11.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "9");
+ }
+ }
+
+ var proto = { 0: 0, 1: 1, 2: 2 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Object.defineProperty(child, "0", {
+ get: function () {
+ return "9";
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(child, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-12.js
new file mode 100644
index 000000000..03bcb0ffe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-12.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-12.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "9");
+ }
+ }
+
+ try {
+ Array.prototype[0] = 0;
+ var arr = [, 1, 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return "9";
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn);
+ return testResult;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-13.js
new file mode 100644
index 000000000..d0524d263
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-13.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-13.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object",
+ test: function testcase() {
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "9");
+ }
+ }
+
+ var proto = { 1: 1, 2: 2};
+
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Object.defineProperty(child, "0", {
+ get: function () {
+ return "9";
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(child, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-14.js
new file mode 100644
index 000000000..6444894aa
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-14.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-14.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "9");
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ var arr = [, 1, 2];
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ return "9";
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn);
+ return testResult;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-15.js
new file mode 100644
index 000000000..c6c99aba9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-15.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-15.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 0);
+ }
+ }
+
+ var proto = { 1: 1, 2: 2 };
+
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduce.call(child, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-16.js
new file mode 100644
index 000000000..6bea23e0f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-16.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-16.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 0);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ var arr = [, 1, 2];
+
+ arr.reduce(callbackfn);
+ return testResult;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-17.js
new file mode 100644
index 000000000..650ecae25
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-17.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-17.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === undefined);
+ }
+ }
+
+ var obj = { 1: 1, 2: 2, length: 3 };
+
+ Object.defineProperty(obj, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-18.js
new file mode 100644
index 000000000..4143da2c1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-18.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-18.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === undefined);
+ }
+ }
+
+ var arr = [, 1, 2];
+
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-19.js
new file mode 100644
index 000000000..916a4a34e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-19.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-19.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === undefined);
+ }
+ }
+
+ try {
+ Object.prototype[0] = 0;
+
+ var obj = { 1: 1, 2: 2, length: 3 };
+
+ Object.defineProperty(obj, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, callbackfn);
+ return testResult;
+ } finally {
+ delete Object.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-2.js
new file mode 100644
index 000000000..79e67f750
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-2.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-2.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 0);
+ }
+ }
+
+ var arr = [0, 1, 2];
+ arr.reduce(callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-20.js
new file mode 100644
index 000000000..40608c375
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-20.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-20.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === undefined);
+ }
+ }
+
+ try {
+ Array.prototype[0] = 0;
+ var arr = [, 1, 2];
+ Object.defineProperty(arr, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-21.js
new file mode 100644
index 000000000..eee30c9be
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-21.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-21.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is inherited accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === undefined);
+ }
+ }
+
+ var proto = { 1: 1, 2: 2 };
+
+ Object.defineProperty(proto, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduce.call(child, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-22.js
new file mode 100644
index 000000000..09ab41ce2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-22.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-22.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is inherited accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === undefined);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ set: function () { },
+ configurable: true
+ });
+
+ var arr = [, 1, 2];
+
+ arr.reduce(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[0];
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-23.js
new file mode 100644
index 000000000..b685e4329
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-23.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-23.js",
+
+ description: "Array.prototype.reduce - This object is the global object which contains index property",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 0);
+ }
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 0;
+ fnGlobalObject()[1] = 1;
+ fnGlobalObject()[2] = 2;
+ fnGlobalObject().length = 3;
+
+ Array.prototype.reduce.call(fnGlobalObject(), callbackfn);
+ return testResult;
+
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-25.js
new file mode 100644
index 000000000..b498181b2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-25.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-25.js",
+
+ description: "Array.prototype.reduce - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 0);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduce.call(arguments, callbackfn);
+ };
+
+ func(0, 1);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-26.js
new file mode 100644
index 000000000..1c1636709
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-26.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-26.js",
+
+ description: "Array.prototype.reduce - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2) {
+ testResult = (prevVal === 1);
+ }
+ }
+
+ var func = function (a, b, c) {
+ delete arguments[0];
+ Array.prototype.reduce.call(arguments, callbackfn);
+ };
+
+ func(0, 1, 2);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-27.js
new file mode 100644
index 000000000..8f556682e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-27.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-27.js",
+
+ description: "Array.prototype.reduce - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 3) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ var func = function (a, b, c) {
+ delete arguments[0];
+ delete arguments[1];
+ Array.prototype.reduce.call(arguments, callbackfn);
+ };
+
+ func(0, 1, 2, 3);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-28.js
new file mode 100644
index 000000000..45324a6ac
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-28.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-28.js",
+
+ description: "Array.prototype.reduce - applied to String object, which implements its own property get method",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "0");
+ }
+ }
+
+ var str = new String("012");
+ Array.prototype.reduce.call(str, callbackfn);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-29.js
new file mode 100644
index 000000000..0acf9f653
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-29.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-29.js",
+
+ description: "Array.prototype.reduce - applied to Function object which implements its own property get method",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 0);
+ }
+ }
+
+ var obj = function (a, b, c) {
+ return a + b + c;
+ };
+ obj[0] = 0;
+ obj[1] = 1;
+ obj[2] = 2;
+ obj[3] = 3;
+
+ Array.prototype.reduce.call(obj, callbackfn);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-3.js
new file mode 100644
index 000000000..1e42d1ae8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-3.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-3.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "9");
+ }
+ }
+
+ var proto = { 0: 0, 1: 1, 2: 2, length: 3 };
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = "9";
+ child[1] = "1";
+ child.length = 3;
+
+ Array.prototype.reduce.call(child, callbackfn);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-30.js
new file mode 100644
index 000000000..4056e4143
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-30.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-30.js",
+
+ description: "Array.prototype.reduce - element changed by getter on current iterations is observed in subsequent iterations on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var arr = [, , 2];
+ var preIterVisible = false;
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ preIterVisible = true;
+ return 0;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 1;
+ } else {
+ return 100;
+ }
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-31.js
new file mode 100644
index 000000000..8008ba0d4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-31.js
@@ -0,0 +1,71 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-31.js",
+
+ description: "Array.prototype.reduce - element changed by getter on current iterations is observed in subsequent iterations on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var obj = { length: 2 };
+ var preIterVisible = false;
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ preIterVisible = true;
+ return 0;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 1;
+ } else {
+ return 100;
+ }
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, callbackfn);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-32.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-32.js
new file mode 100644
index 000000000..e48807095
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-32.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-32",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-32.js",
+
+ description: "Array.prototype.reduce - exception in getter terminates iteration on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx >= 1) {
+ accessed = true;
+ testResult = (prevVal === 0);
+ }
+ }
+
+ var obj = { 2: 2, 1: 1, length: 3 };
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed && !testResult;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-33.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-33.js
new file mode 100644
index 000000000..8433a8d68
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-33.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-33",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-33.js",
+
+ description: "Array.prototype.reduce - exception in getter terminates iteration on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx >= 1) {
+ accessed = true;
+ testResult = (prevVal === 0);
+ }
+ }
+
+ var arr = [, 1, 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ arr.reduce(callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed && !testResult;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-4.js
new file mode 100644
index 000000000..13829dc9c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-4.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-4.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 0);
+ }
+ }
+
+ try {
+ Array.prototype[0] = "9";
+ [0, 1, 2].reduce(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-5.js
new file mode 100644
index 000000000..aa776aa28
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-5.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-5.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "9");
+ }
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ Object.defineProperty(child, "0", {
+ value: "9",
+ configurable: true
+ });
+ child[1] = "1";
+
+ Array.prototype.reduce.call(child, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+}); \ No newline at end of file
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-6.js
new file mode 100644
index 000000000..188fa4a2a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-6.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-6.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 0);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ get: function () {
+ return "5";
+ },
+ configurable: true
+ });
+
+ [0, 1, 2].reduce(callbackfn);
+ return testResult;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-7.js
new file mode 100644
index 000000000..ed13875c4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-7.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-7.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 0);
+ }
+ }
+
+ var proto = { 0: 0, 1: 1, 2: 2, length: 3 };
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduce.call(child, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-8.js
new file mode 100644
index 000000000..3333459a9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-8.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-8.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is inherited data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 0);
+ }
+ }
+
+ try {
+ Array.prototype[0] = 0;
+ Array.prototype[1] = 1;
+ Array.prototype[2] = 2;
+ [, , ,].reduce(callbackfn);
+ return testResult;
+ } finally {
+ delete Array.prototype[0];
+ delete Array.prototype[1];
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && ![, 1].hasOwnProperty(0);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-9.js
new file mode 100644
index 000000000..2eddcfec4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-9.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-b-iii-1-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-b-iii-1-9.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 0);
+ }
+ }
+
+ var obj = { 1: 1, 2: 2, length: 3 };
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-1.js
new file mode 100644
index 000000000..666d05c43
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-1.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-8-c-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-1.js",
+
+description: "Array.prototype.reduce throws TypeError when Array is empty and initialValue is not present",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ }
+
+ var arr = new Array(10);
+ try {
+ arr.reduce(callbackfn);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-2.js
new file mode 100644
index 000000000..87af7d08f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-8-c-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-2.js",
+
+description: "Array.prototype.reduce throws TypeError when elements assigned values are deleted by reducing array length and initialValue is not present",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ }
+
+ var arr = new Array(10);
+ arr[9] = 1;
+ arr.length = 5;
+ try {
+ arr.reduce(callbackfn);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-3.js
new file mode 100644
index 000000000..2cdeb05ff
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-3.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-8-c-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-3.js",
+
+description: "Array.prototype.reduce throws TypeError when elements assigned values are deleted and initialValue is not present",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ }
+
+ var arr = [1,2,3,4,5];
+ delete arr[0];
+ delete arr[1];
+ delete arr[2];
+ delete arr[3];
+ delete arr[4];
+ try {
+ arr.reduce(callbackfn);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-4.js
new file mode 100644
index 000000000..4db1a126d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-c-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-4.js",
+
+ description: "Array.prototype.reduce doesn't throw error when array has no own properties but prototype contains a single property",
+
+ test: function testcase() {
+
+ var arr = [, , , ];
+
+ try {
+ Array.prototype[1] = "prototype";
+ arr.reduce(function () { });
+ return true;
+ } catch (ex) {
+ return false;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && ![, 1].hasOwnProperty(0);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-5.js
new file mode 100644
index 000000000..2bfa914ba
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-5.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-c-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-5.js",
+
+ description: "Array.prototype.reduce - if exception occurs, it occurs after any side-effects that might be produced by step 2",
+
+ test: function testcase() {
+
+ var obj = { };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-6.js
new file mode 100644
index 000000000..e4cff6c5b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-6.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-c-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-6.js",
+
+ description: "Array.prototype.reduce - if exception occurs, it occurs after any side-effects that might be produced by step 3",
+
+ test: function testcase() {
+
+ var obj = {};
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "2";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-7.js
new file mode 100644
index 000000000..e30ddac30
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-7.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-c-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-7.js",
+
+ description: "Array.prototype.reduce - the exception is not thrown if exception was thrown by step 2",
+
+ test: function testcase() {
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-8.js
new file mode 100644
index 000000000..5e574c02c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-8.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-8-c-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-8-c-8.js",
+
+ description: "Array.prototype.reduce - the exception is not thrown if exception was thrown by step 3",
+
+ test: function testcase() {
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-1.js
new file mode 100644
index 000000000..5235ac075
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-1.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.21-9-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-1.js",
+
+ description: "Array.prototype.reduce doesn't consider new elements added to array after it is called",
+
+ test: function testcase() {
+ function callbackfn(prevVal, curVal, idx, obj) {
+ arr[5] = 6;
+ arr[2] = 3;
+ return prevVal + curVal;
+ }
+
+ var arr = [1, 2, , 4, '5'];
+ return arr.reduce(callbackfn) === "105";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-10.js
new file mode 100644
index 000000000..c746d78b3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-10.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-9-10",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-10.js",
+
+description: "Array.prototype.reduce called with an initial value doesn't consider new elements added to array after it is called",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ arr[5] = 6;
+ arr[2] = 3;
+ return prevVal + curVal;
+ }
+
+ var arr = [1,2,,4,'5'];
+ return arr.reduce(callbackfn, "") === "12345";
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-2.js
new file mode 100644
index 000000000..0250c8807
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-2.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-9-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-2.js",
+
+description: "Array.prototype.reduce considers new value of elements in array after it is called",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ arr[3] = -2;
+ arr[4] = -1;
+ return prevVal + curVal;
+ }
+
+ var arr = [1,2,3,4,5];
+ if(arr.reduce(callbackfn) === 3)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-3.js
new file mode 100644
index 000000000..15d7f0f7f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-3.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-9-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-3.js",
+
+description: "Array.prototype.reduce doesn't visit deleted elements in array after the call",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ delete arr[3];
+ delete arr[4];
+ return prevVal + curVal;
+ }
+
+ var arr = ['1',2,3,4,5];
+ if(arr.reduce(callbackfn) === "123" ) // two elements deleted
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-4.js
new file mode 100644
index 000000000..5a4a1b194
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-4.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-9-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-4.js",
+
+description: "Array.prototype.reduce doesn't visit deleted elements when Array.length is decreased",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ arr.length = 2;
+ return prevVal + curVal;
+ }
+
+ var arr = [1,2,3,4,5];
+ if(arr.reduce(callbackfn) === 3 )
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-5.js
new file mode 100644
index 000000000..01c3c7ebe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-5.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-9-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-5.js",
+
+description: "Array.prototype.reduce - callbackfn not called for array with one element",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ callCnt++;
+ return 2;
+ }
+
+ var arr = [1];
+ if(arr.reduce(callbackfn) === 1 && callCnt === 0 )
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-6.js
new file mode 100644
index 000000000..eef19d4f5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-6.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-9-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-6.js",
+
+description: "Array.prototype.reduce visits deleted element in array after the call when same index is also present in prototype",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ delete arr[3];
+ delete arr[4];
+ return prevVal + curVal;
+ }
+
+ Array.prototype[4] = 5;
+ var arr = ['1',2,3,4,5];
+ var res = arr.reduce(callbackfn);
+ delete Array.prototype[4];
+
+ if(res === "1235" ) //one element acually deleted
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-7.js
new file mode 100644
index 000000000..164b15c67
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-7.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.21-9-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-7.js",
+
+ description: "Array.prototype.reduce stops calling callbackfn once the array is deleted during the call",
+
+ test: function testcase() {
+ function callbackfn(prevVal, curVal, idx, obj) {
+ delete o.arr;
+ return prevVal + curVal;
+ }
+
+ var o = new Object();
+ o.arr = ['1', 2, 3, 4, 5];
+ return o.arr.reduce(callbackfn) === "12345" && !o.hasOwnProperty("arr");
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-8.js
new file mode 100644
index 000000000..f453aea3e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-8.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-8.js",
+
+ description: "Array.prototype.reduce - no observable effects occur if 'len' is 0",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var callbackAccessed = false;
+ function callbackfn() {
+ callbackAccessed = true;
+ }
+
+ var obj = { length: 0 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ accessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, function () { }, "initialValue");
+ return !accessed && !callbackAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-9.js
new file mode 100644
index 000000000..7a3933273
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-9.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-9.js",
+
+ description: "Array.prototype.reduce - modifications to length don't change number of iterations in step 9",
+
+ test: function testcase() {
+ var called = 0;
+ function callbackfn(accum, val, idx, obj) {
+ called++;
+ return accum + val;
+ }
+
+ var arr = [0, 1, 2, 3];
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr.length = 2;
+ return 0;
+ },
+ configurable: true
+ });
+
+ var newAccum = arr.reduce(callbackfn, "initialValue");
+
+ return newAccum === "initialValue01" && called === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-1.js
new file mode 100644
index 000000000..33b9d9697
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-1.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-9-b-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-1.js",
+
+description: "Array.prototype.reduce returns initialvalue when Array is empty and initialValue is present",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ }
+
+ var arr = new Array(10);
+
+ if(arr.reduce(callbackfn,5) === 5)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-10.js
new file mode 100644
index 000000000..1faf19429
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-10.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-10.js",
+
+ description: "Array.prototype.reduce - deleting property of prototype in step 8 causes deleted index property not to be visited on an Array-like Object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(accum, val, idx, obj) {
+ accessed = true;
+ if (idx === 3) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 2: 2, length: 20 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete Object.prototype[3];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[3] = 1;
+ Array.prototype.reduce.call(obj, callbackfn);
+ return testResult && accessed;
+ } finally {
+ delete Object.prototype[3];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-11.js
new file mode 100644
index 000000000..a903ffe24
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-11.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-11.js",
+
+ description: "Array.prototype.reduce - deleting property of prototype in step 8 causes deleted index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(accum, val, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var arr = [, , , 3];
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete Array.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ arr.reduce(callbackfn);
+ return testResult && accessed;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-12.js
new file mode 100644
index 000000000..5caa31f9b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-12.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-12.js",
+
+ description: "Array.prototype.reduce - deleting own property with prototype property in step 8 causes prototype index property to be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ testResult = true;
+ }
+ }
+
+ var obj = { 0: 0, 1: 111, 4: 10, length: 10 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ Array.prototype.reduce.call(obj, callbackfn);
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-13.js
new file mode 100644
index 000000000..ace190cc7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-13.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-13.js",
+
+ description: "Array.prototype.reduce - deleting own property with prototype property in step 8 causes prototype index property to be visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ testResult = true;
+ }
+ }
+ var arr = [0, 111];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ arr.reduce(callbackfn);
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-14.js
new file mode 100644
index 000000000..a80784e7a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-14.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-14.js",
+
+ description: "Array.prototype.reduce - decreasing length of array in step 8 causes deleted index property not to be visited",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(accum, val, idx, obj) {
+ accessed = true;
+ if (idx === 2) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0, 1, 2, 3];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr.length = 2;
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn);
+
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-15.js
new file mode 100644
index 000000000..29f29cd3c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-15.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-15.js",
+
+ description: "Array.prototype.reduce - decreasing length of array with prototype property in step 8 causes prototype index property to be visited",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 2 && val === "prototype") {
+ testResult = true;
+ }
+ }
+ var arr = [0, 1, 2, 3];
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "prototype";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn);
+
+ return testResult;
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-16.js
new file mode 100644
index 000000000..466911d3c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-16.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-16.js",
+
+ description: "Array.prototype.reduce - decreasing length of array in step 8 does not delete non-configurable properties",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 2 && val === "unconfigurable") {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, 1, 2, 3];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "unconfigurable";
+ },
+ configurable: false
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-17.js
new file mode 100644
index 000000000..953c27231
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-17.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-17.js",
+
+ description: "Array.prototype.reduce - properties added into own object are visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 3 && val === 3) {
+ testResult = true;
+ }
+ }
+
+ var obj = { length: 5 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ Object.defineProperty(obj, "3", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+ return 1;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, callbackfn, "initialValue");
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-18.js
new file mode 100644
index 000000000..83c6f2dcd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-18.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-18.js",
+
+ description: "Array.prototype.reduce - properties added into own object are visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn, "initialValue");
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-19.js
new file mode 100644
index 000000000..6ddf1888f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-19.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-19.js",
+
+ description: "Array.prototype.reduce - properties added to prototype are visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 1 && val === 6.99) {
+ testResult = true;
+ }
+ }
+
+ var obj = { length: 6 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, callbackfn, "initialValue");
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-2.js
new file mode 100644
index 000000000..2619e14a3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-2.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-2.js",
+
+ description: "Array.prototype.reduce - added properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 2 && val === "2") {
+ testResult = true;
+ }
+ }
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ obj[2] = "2";
+ return 3;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, callbackfn, "initialValue");
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-20.js
new file mode 100644
index 000000000..9d78e05ac
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-20.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-20.js",
+
+ description: "Array.prototype.reduce - properties can be added to prototype are visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 1 && val === 6.99) {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ arr.reduce(callbackfn, "initialValue");
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-21.js
new file mode 100644
index 000000000..3910a6203
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-21.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-21.js",
+
+ description: "Array.prototype.reduce - deleting own property causes deleted index property not to be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(accum, val, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 5: 10, length: 10 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, callbackfn, "initialValue");
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-22.js
new file mode 100644
index 000000000..00f28416f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-22.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-22.js",
+
+ description: "Array.prototype.reduce - deleting own property causes deleted index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(accum, val, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var arr = [1, 2, 4];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "6.99";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn, "initialValue");
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-23.js
new file mode 100644
index 000000000..d08de8ecb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-23.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-23.js",
+
+ description: "Array.prototype.reduce - deleting property of prototype causes deleted index property not to be visited on an Array-like Object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(accum, val, idx, obj) {
+ accessed = true;
+ if (idx === 3) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 2: 2, length: 20 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete Object.prototype[3];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[3] = 1;
+ Array.prototype.reduce.call(obj, callbackfn, "initialValue");
+ return testResult && accessed;
+ } finally {
+ delete Object.prototype[3];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-24.js
new file mode 100644
index 000000000..fd20335bd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-24.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-24.js",
+
+ description: "Array.prototype.reduce - deleting property of prototype causes deleted index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(accum, val, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0, , , 3];
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete Array.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ arr.reduce(callbackfn, "initialValue");
+ return testResult && accessed;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-25.js
new file mode 100644
index 000000000..4df7a0098
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-25.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-25.js",
+
+ description: "Array.prototype.reduce - deleting own property with prototype property causes prototype index property to be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ testResult = true;
+ }
+ }
+
+ var obj = { 0: 0, 1: 111, 4: 10, length: 10 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ Array.prototype.reduce.call(obj, callbackfn, "initialValue");
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-26.js
new file mode 100644
index 000000000..526b81428
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-26.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-26.js",
+
+ description: "Array.prototype.reduce - deleting own property with prototype property causes prototype index property to be visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ testResult = true;
+ }
+ }
+ var arr = [0, 111];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ arr.reduce(callbackfn, "initialValue");
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-27.js
new file mode 100644
index 000000000..a8f94fc91
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-27.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-27.js",
+
+ description: "Array.prototype.reduce - decreasing length of array causes deleted index property not to be visited",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(accum, val, idx, obj) {
+ accessed = true;
+ if (idx === 2) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0, 1, 2, 3];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr.length = 2;
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn, "initialValue");
+
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-28.js
new file mode 100644
index 000000000..8581a67ab
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-28.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-28.js",
+
+ description: "Array.prototype.reduce - decreasing length of array with prototype property causes prototype index property to be visited",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 2 && val === "prototype") {
+ testResult = true;
+ }
+ }
+ var arr = [0, 1, 2, 3];
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "prototype";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn, "initialValue");
+
+ return testResult;
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-29.js
new file mode 100644
index 000000000..0cb63ef96
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-29.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-29.js",
+
+ description: "Array.prototype.reduce - decreasing length of array does not delete non-configurable properties",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 2 && val === "unconfigurable") {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, 1, 2, 3];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "unconfigurable";
+ },
+ configurable: false
+ });
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn, "initialValue");
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-3.js
new file mode 100644
index 000000000..39238b8c2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-3.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-3.js",
+
+ description: "Array.prototype.reduce - deleted properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(accum, val, idx, obj) {
+ accessed = true;
+ if (idx === 2) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 2: "2", 3: 10 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ delete obj[2];
+ return 5;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, callbackfn, "initialValue");
+
+ return accessed && testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-4.js
new file mode 100644
index 000000000..62f51e174
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-4.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-4.js",
+
+ description: "Array.prototype.reduce - properties added into own object in step 8 are visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 3 && val === 3) {
+ testResult = true;
+ }
+ }
+
+ var obj = { length: 5 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ Object.defineProperty(obj, "3", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+ return 1;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-5.js
new file mode 100644
index 000000000..471be11d6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-5.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-5.js",
+
+ description: "Array.prototype.reduce - properties added into own object in step 8 are visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 1 && val === 1) {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-6.js
new file mode 100644
index 000000000..d7309d907
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-6.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-6.js",
+
+ description: "Array.prototype.reduce - properties added to prototype in step 8 are visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 1 && val === 6.99) {
+ testResult = true;
+ }
+ }
+
+ var obj = { length: 6 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, callbackfn);
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-7.js
new file mode 100644
index 000000000..2840007ff
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-7.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-7.js",
+
+ description: "Array.prototype.reduce - properties added to prototype in step 8 are visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(accum, val, idx, obj) {
+ if (idx === 1 && val === 6.99) {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ arr.reduce(callbackfn);
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-8.js
new file mode 100644
index 000000000..ce7b51023
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-8.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-8.js",
+
+ description: "Array.prototype.reduce - deleting own property in step 8 causes deleted index property not to be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(accum, val, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 5: 10, length: 10 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, callbackfn);
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-9.js
new file mode 100644
index 000000000..5fd43deab
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-9.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-b-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-b-9.js",
+
+ description: "Array.prototype.reduce - deleting own property in step 8 causes deleted index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(accum, val, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var arr = [1, 2, 4];
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn);
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-1.js
new file mode 100644
index 000000000..53a653f68
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-1.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-9-c-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-1.js",
+
+description: "Array.prototype.reduce - callbackfn not called for indexes never been assigned values",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ callCnt++;
+ return curVal;
+ }
+
+ var arr = new Array(10);
+ arr[0] = arr[1] = undefined; //explicitly assigning a value
+ if( arr.reduce(callbackfn) === undefined && callCnt === 1)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-1.js
new file mode 100644
index 000000000..05ef0baa5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-1.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-1.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var obj = { 0: 0, 1: 1, 2: 2, length: 2 };
+ Array.prototype.reduce.call(obj, callbackfn, initialValue);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-10.js
new file mode 100644
index 000000000..3b7bdc7e4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-10.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-10.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn, initialValue);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-11.js
new file mode 100644
index 000000000..aaf4ba46f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-11.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-11.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "11");
+ }
+ }
+
+ var proto = { 0: 0, 1: 1, 2: 2 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Object.defineProperty(child, "1", {
+ get: function () {
+ return "11";
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(child, callbackfn, initialValue);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-12.js
new file mode 100644
index 000000000..b6a21ebb3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-12.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-12.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "11");
+ }
+ }
+
+ try {
+ Array.prototype[1] = 1;
+ var arr = [0, ,2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "11";
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn, initialValue);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-13.js
new file mode 100644
index 000000000..4191b4529
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-13.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-13.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object",
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "11");
+ }
+ }
+
+ var proto = { 0: 0, 2: 2};
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Object.defineProperty(child, "1", {
+ get: function () {
+ return "11";
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(child, callbackfn, initialValue);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-14.js
new file mode 100644
index 000000000..7870ce7ff
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-14.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-14.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "11");
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ var arr = [0, ,2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "11";
+ },
+ configurable: true
+ });
+ arr.reduce(callbackfn, initialValue);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-15.js
new file mode 100644
index 000000000..80664cadb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-15.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-15.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var proto = { 0: 0, 2: 2 };
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduce.call(child, callbackfn, initialValue);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-16.js
new file mode 100644
index 000000000..5bbc051d1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-16.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-16.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ var arr = [0, , 2, ];
+
+ arr.reduce(callbackfn, initialValue);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-17.js
new file mode 100644
index 000000000..21ba467bb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-17.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-17.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === undefined);
+ }
+ }
+
+ var obj = { 0: 0, 2: 2, length: 3 };
+
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, callbackfn, initialValue);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-18.js
new file mode 100644
index 000000000..04857f928
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-18.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-18.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === undefined);
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn, initialValue);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-19.js
new file mode 100644
index 000000000..10ad7009e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-19.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-19.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === undefined);
+ }
+ }
+
+ try {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ var obj = { 0: 0, 2: 2, length: 3 };
+
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, callbackfn, initialValue);
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-2.js
new file mode 100644
index 000000000..b694ee120
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-2.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-2.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var arr = [0, 1];
+ arr.reduce(callbackfn, initialValue);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-20.js
new file mode 100644
index 000000000..34b284d52
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-20.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-20.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === undefined);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var arr = [0, , 2];
+ Object.defineProperty(arr, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn, initialValue);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-21.js
new file mode 100644
index 000000000..febf7e349
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-21.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-21.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is inherited accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === undefined);
+ }
+ }
+
+ var proto = { 0: 0, 2: 2 };
+
+ Object.defineProperty(proto, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduce.call(child, callbackfn, initialValue);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-22.js
new file mode 100644
index 000000000..be3360b77
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-22.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-22.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is inherited accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === undefined);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var arr = [0, , 2];
+
+ arr.reduce(callbackfn, initialValue);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-23.js
new file mode 100644
index 000000000..a8473bd9a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-23.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-23.js",
+
+ description: "Array.prototype.reduce - This object is the global object which contains index property",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 0;
+ fnGlobalObject()[1] = 1;
+ fnGlobalObject().length = 2;
+
+ Array.prototype.reduce.call(fnGlobalObject(), callbackfn, initialValue);
+ return testResult;
+
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-25.js
new file mode 100644
index 000000000..ed6571091
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-25.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-25.js",
+
+ description: "Array.prototype.reduce - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduce.call(arguments, callbackfn, initialValue);
+ };
+
+ func(0, 1);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-26.js
new file mode 100644
index 000000000..574a8112e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-26.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-26.js",
+
+ description: "Array.prototype.reduce - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2) {
+ testResult = (curVal === 2);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduce.call(arguments, callbackfn, initialValue);
+ };
+
+ func(0, 1, 2);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-27.js
new file mode 100644
index 000000000..189dac36d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-27.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-27.js",
+
+ description: "Array.prototype.reduce - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 3) {
+ testResult = (curVal === 3);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduce.call(arguments, callbackfn, initialValue);
+ };
+
+ func(0, 1, 2, 3);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-28.js
new file mode 100644
index 000000000..724a78286
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-28.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-28.js",
+
+ description: "Array.prototype.reduce - applied to String object, which implements its own property get method",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "1");
+ }
+ }
+
+ var str = new String("012");
+
+ Array.prototype.reduce.call(str, callbackfn, initialValue);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+}); \ No newline at end of file
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-29.js
new file mode 100644
index 000000000..c18e3349a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-29.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-29.js",
+
+ description: "Array.prototype.reduce - applied to Function object which implements its own property get method",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var obj = function (a, b, c) {
+ return a + b + c;
+ };
+ obj[0] = 0;
+ obj[1] = 1;
+ obj[2] = 2;
+ obj[3] = 3;
+
+ Array.prototype.reduce.call(obj, callbackfn, initialValue);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+}); \ No newline at end of file
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-3.js
new file mode 100644
index 000000000..9e5ed7ea4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-3.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-3.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "11");
+ }
+ }
+
+ var proto = { 0: 0, 1: 1, 2: 2, length: 2 };
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[1] = "11";
+ child[2] = "22";
+ child.length = 3;
+
+ Array.prototype.reduce.call(child, callbackfn, initialValue);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-30.js
new file mode 100644
index 000000000..407a3dea6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-30.js
@@ -0,0 +1,71 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-30.js",
+
+ description: "Array.prototype.reduce - element changed by getter on previous iterations is observed on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var arr = [, , 2];
+ var preIterVisible = false;
+
+ Object.defineProperty(arr, "0", {
+ get: function () {
+ preIterVisible = true;
+ return 0;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 1;
+ } else {
+ return 100;
+ }
+ },
+ configurable: true
+ });
+
+ arr.reduce(callbackfn, initialValue);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+}); \ No newline at end of file
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-31.js
new file mode 100644
index 000000000..b5a964d75
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-31.js
@@ -0,0 +1,72 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-31.js",
+
+ description: "Array.prototype.reduce - element changed by getter on previous iterations is observed on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var obj = { 2: 2, length: 3 };
+ var preIterVisible = false;
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ preIterVisible = true;
+ return 0;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 1;
+ } else {
+ return "11";
+ }
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, callbackfn, initialValue);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+}); \ No newline at end of file
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-32.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-32.js
new file mode 100644
index 000000000..09ec8cf9f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-32.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-32",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-32.js",
+
+ description: "Array.prototype.reduce - unnhandled exceptions happened in getter terminate iteration on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx >= 1) {
+ accessed = true;
+ testResult = (curVal >= 1);
+ }
+ }
+
+ var obj = { 0: 0, 2: 2, length: 3 };
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduce.call(obj, callbackfn, initialValue);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed && !testResult;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-33.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-33.js
new file mode 100644
index 000000000..7ba076b7a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-33.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-33",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-33.js",
+
+ description: "Array.prototype.reduce - unnhandled exceptions happened in getter terminate iteration on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx >= 1) {
+ accessed = true;
+ testResult = (curVal >= 1);
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ arr.reduce(callbackfn, initialValue);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed && !testResult;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+}); \ No newline at end of file
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-4.js
new file mode 100644
index 000000000..130edc01c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-4.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-4.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ Array.prototype[1] = "3";
+ [0, 1, 2].reduce(callbackfn, initialValue);
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-5.js
new file mode 100644
index 000000000..b5b7362c1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-5.js
@@ -0,0 +1,71 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-5.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 0) {
+ testResult = (curVal === "9");
+ }
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+
+ Object.defineProperty(child, "0", {
+ value: "9",
+ configurable: true
+ });
+
+ child[1] = "1";
+
+ Array.prototype.reduce.call(child, callbackfn, initialValue);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+}); \ No newline at end of file
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-6.js
new file mode 100644
index 000000000..39fa98ca7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-6.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-6.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own data property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return "9";
+ },
+ configurable: true
+ });
+ [0, 1, 2].reduce(callbackfn, initialValue);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-7.js
new file mode 100644
index 000000000..fa2cf1e83
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-7.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-7.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var proto = { 0: 0, 1: 1, 2: 2, length: 3 };
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduce.call(child, callbackfn, initialValue);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-8.js
new file mode 100644
index 000000000..b371ffcb2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-8.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-8.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is inherited data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ Array.prototype[0] = 0;
+ Array.prototype[1] = 1;
+ Array.prototype[2] = 2;
+ [, , , ].reduce(callbackfn, initialValue);
+
+ return testResult;
+ } finally {
+ delete Array.prototype[0];
+ delete Array.prototype[1];
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && ![, 1].hasOwnProperty(0);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-9.js
new file mode 100644
index 000000000..595e7564a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-9.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-i-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-i-9.js",
+
+ description: "Array.prototype.reduce - element to be retrieved is own accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var obj = { 0: 0, 2: 2, length: 3 };
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduce.call(obj, callbackfn, initialValue);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-1.js
new file mode 100644
index 000000000..f5ddc8b94
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-1.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-9-c-ii-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-1.js",
+
+description: "Array.prototype.reduce - callbackfn called with correct parameters (initialvalue not passed)",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ if(idx > 0 && obj[idx] === curVal && obj[idx-1] === prevVal)
+ return curVal;
+ else
+ return false;
+ }
+
+ var arr = [0,1,true,null,new Object(),"five"];
+ if( arr.reduce(callbackfn) === "five")
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-10.js
new file mode 100644
index 000000000..b5c533a6d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-10.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-10.js",
+
+ description: "Array.prototype.reduce - callbackfn is called with 1 formal parameter",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(prevVal) {
+ result = (prevVal === 1);
+ }
+
+ [11].reduce(callbackfn, 1);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-11.js
new file mode 100644
index 000000000..60f5fcf07
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-11.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-11.js",
+
+ description: "Array.prototype.reduce - callbackfn is called with 2 formal parameter",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(prevVal, curVal) {
+ result = (curVal > 10 && 1 === prevVal);
+ }
+
+ [11].reduce(callbackfn, 1);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-12.js
new file mode 100644
index 000000000..50d010e39
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-12.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-12.js",
+
+ description: "Array.prototype.reduce - callbackfn is called with 3 formal parameter",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(prevVal, curVal, idx) {
+ result = (prevVal === 1 && arguments[3][idx] === curVal);
+ }
+
+ [11].reduce(callbackfn, 1);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-13.js
new file mode 100644
index 000000000..f08442b3c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-13.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-13.js",
+
+ description: "Array.prototype.reduce - callbackfn is called with 4 formal parameter",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ result = (prevVal === 1 && obj[idx] === curVal);
+ }
+
+ [11].reduce(callbackfn, 1);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-14.js
new file mode 100644
index 000000000..c621fd9b5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-14.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-14.js",
+
+ description: "Array.prototype.reduce - callbackfn that uses arguments",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn() {
+ result = (arguments[0] === 1 && arguments[3][arguments[2]] === arguments[1]);
+ }
+
+ [11].reduce(callbackfn, 1);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-16.js
new file mode 100644
index 000000000..19dab7581
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-16.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-16.js",
+
+ description: "Array.prototype.reduce - non-indexed properties are not called",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var result1 = true;
+ var result2 = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (curVal === 8) {
+ result1 = false;
+ }
+
+ if (prevVal === 8) {
+ result2 = false;
+ }
+ }
+
+ var obj = { 0: 11, 10: 12, non_index_property: 8, length: 20 };
+
+ Array.prototype.reduce.call(obj, callbackfn, 1);
+ return result1 && result2 && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-17.js
new file mode 100644
index 000000000..156ea72ec
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-17.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-17.js",
+
+ description: "Array.prototype.reduce - 'accumulator' used for current iteration is the result of previous iteration on an Array",
+
+ test: function testcase() {
+
+ var result = true;
+ var accessed = false;
+ var preIteration = 1;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (preIteration !== prevVal) {
+ result = false;
+ }
+ preIteration = curVal;
+ return curVal;
+ }
+
+ [11, 12, 13].reduce(callbackfn, 1);
+ return result && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-18.js
new file mode 100644
index 000000000..444b52350
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-18.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-18.js",
+
+ description: "Array.prototype.reduce - value of 'accumulator' used for first iteration is the value of 'initialValue' when it is present on an Array-like object",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 0) {
+ result = (arguments[0] === 1);
+ }
+ }
+
+ var obj = { 0: 11, 1: 9, length: 2 };
+
+ Array.prototype.reduce.call(obj, callbackfn, 1);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-19.js
new file mode 100644
index 000000000..0e9554878
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-19.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-19.js",
+
+ description: "Array.prototype.reduce - value of 'accumulator' used for first iteration is the value of least index property which is not undefined when 'initialValue' is not present on an Array",
+
+ test: function testcase() {
+
+ var called = 0;
+ var result = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ called++;
+ if (idx === 1) {
+ result = (prevVal === 11) && curVal === 9;
+ }
+ }
+
+ [11, 9].reduce(callbackfn);
+ return result && called === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-2.js
new file mode 100644
index 000000000..88b9c9477
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-2.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-9-c-ii-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-2.js",
+
+description: "Array.prototype.reduce - callbackfn called with correct parameters (initialvalue passed)",
+
+test: function testcase() {
+
+ var bParCorrect = false;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ if(idx === 0 && obj[idx] === curVal && prevVal === initialValue)
+ return curVal;
+ else if(idx > 0 && obj[idx] === curVal && obj[idx-1] === prevVal)
+ return curVal;
+ else
+ return false;
+ }
+
+ var arr = [0,1,true,null,new Object(),"five"];
+ var initialValue = 5.5;
+ if( arr.reduce(callbackfn,initialValue) === "five")
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-20.js
new file mode 100644
index 000000000..885e1a937
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-20.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-20.js",
+
+ description: "Array.prototype.reduce - undefined can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return typeof prevVal === "undefined";
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, undefined) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-21.js
new file mode 100644
index 000000000..b3860ccfc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-21.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-21.js",
+
+ description: "Array.prototype.reduce - null can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === null;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, null) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-22.js
new file mode 100644
index 000000000..7081d51a2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-22.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-22.js",
+
+ description: "Array.prototype.reduce - boolean primitive can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === false;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, false) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-23.js
new file mode 100644
index 000000000..793ef5d0b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-23.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-23.js",
+
+ description: "Array.prototype.reduce - number primitive can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === 12;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, 12) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-24.js
new file mode 100644
index 000000000..e5f183c83
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-24.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-24.js",
+
+ description: "Array.prototype.reduce - string primitive can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === "hello_";
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, "hello_") === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-25.js
new file mode 100644
index 000000000..6e7c8ba83
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-25.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-25.js",
+
+ description: "Array.prototype.reduce - Function object can be used as accumulator",
+
+ test: function testcase() {
+
+ var objFunction = function () { };
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objFunction;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, objFunction) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-26.js
new file mode 100644
index 000000000..eec31b47f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-26.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-26.js",
+
+ description: "Array.prototype.reduce - Array object can be used as accumulator",
+
+ test: function testcase() {
+
+ var objArray = new Array(10);
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objArray;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, objArray) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-27.js
new file mode 100644
index 000000000..925232e42
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-27.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-27.js",
+
+ description: "Array.prototype.reduce - String object can be used as accumulator",
+
+ test: function testcase() {
+
+ var objString = new String();
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objString;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, objString) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-28.js
new file mode 100644
index 000000000..936f05772
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-28.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-28.js",
+
+ description: "Array.prototype.reduce - Boolean object can be used as accumulator",
+
+ test: function testcase() {
+
+ var objBoolean = new Boolean();
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objBoolean;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, objBoolean) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-29.js
new file mode 100644
index 000000000..ae3e49d4f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-29.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-29.js",
+
+ description: "Array.prototype.reduce - Number object can be used as accumulator",
+
+ test: function testcase() {
+
+ var objNumber = new Number();
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objNumber;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, objNumber) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-3.js
new file mode 100644
index 000000000..a9d5daa5a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-9-c-ii-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-3.js",
+
+description: "Array.prototype.reduce - callbackfn takes 4 arguments",
+
+test: function testcase() {
+
+ var bCalled = false;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ bCalled = true;
+ if(prevVal === true && arguments.length === 4)
+ return true;
+ else
+ return false;
+ }
+ var arr = [0,1,2,3,4,5,6,7,8,9];
+ if(arr.reduce(callbackfn,true) === true && bCalled === true)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-30.js
new file mode 100644
index 000000000..1efa0566a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-30.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-30.js",
+
+ description: "Array.prototype.reduce - the Math object can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === Math;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, Math) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-31.js
new file mode 100644
index 000000000..06d1adf65
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-31.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-31.js",
+
+ description: "Array.prototype.reduce - Date object can be used as accumulator",
+
+ test: function testcase() {
+
+ var objDate = new Date();
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objDate;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, objDate) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-32.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-32.js
new file mode 100644
index 000000000..34a65c21b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-32.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-32",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-32.js",
+
+ description: "Array.prototype.reduce - RegExp object can be used as accumulator",
+
+ test: function testcase() {
+
+ var objRegExp = new RegExp();
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objRegExp;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, objRegExp) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-33.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-33.js
new file mode 100644
index 000000000..46643f724
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-33.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-33",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-33.js",
+
+ description: "Array.prototype.reduce - the JSON can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === JSON;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, JSON) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-34.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-34.js
new file mode 100644
index 000000000..d6917b4d1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-34.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-34",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-34.js",
+
+ description: "Array.prototype.reduce - Error object can be used as accumulator",
+
+ test: function testcase() {
+
+ var objError = new RangeError();
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objError;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, objError) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-35.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-35.js
new file mode 100644
index 000000000..c73afa8ea
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-35.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-35",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-35.js",
+
+ description: "Array.prototype.reduce - the Arguments object can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var arg;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === arg;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ (function fun() {
+ arg = arguments;
+ }(10, 11, 12, 13));
+
+ return Array.prototype.reduce.call(obj, callbackfn, arg) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-37.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-37.js
new file mode 100644
index 000000000..4d5c32fa9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-37.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-37",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-37.js",
+
+ description: "Array.prototype.reduce - the global object can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === fnGlobalObject();
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduce.call(obj, callbackfn, fnGlobalObject()) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4-s.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4-s.js
new file mode 100644
index 000000000..d267daf49
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4-s.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2010 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.21-9-c-ii-4-s",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4-s.js",
+
+description: "Array.prototype.reduce - undefined passed as thisValue to strict callbackfn",
+//ES5 Errata, undefined in step 9.c.ii as thisValue is supposed to be undefined
+
+test: function testcase() {
+ var innerThisCorrect = false;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ "use strict";
+ innerThisCorrect = this===undefined;
+ return true;
+ }
+ [0].reduce(callbackfn,true);
+ return innerThisCorrect;
+ },
+
+strict:1,
+
+precondition: function prereq() {
+ return fnSupportsStrict() && fnExists(Array.prototype.reduce);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4.js
new file mode 100644
index 000000000..c8903841e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-4.js",
+
+ description: "Array.prototype.reduce - k values are passed in acending numeric order on an Array",
+
+ test: function testcase() {
+
+ var arr = [0, 1, 2];
+ var lastIdx = 0;
+ var result = true;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (lastIdx !== idx) {
+ result = false;
+ } else {
+ lastIdx++;
+ }
+ }
+
+ arr.reduce(callbackfn, 11);
+ return result && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-5.js
new file mode 100644
index 000000000..8e291d29b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-5.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-5.js",
+
+ description: "Array.prototype.reduce - k values are accessed during each iteration and not prior to starting the loop on an Array",
+
+ test: function testcase() {
+
+ var result = true;
+ var kIndex = [];
+ var called = 0;
+
+ //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time.
+ function callbackfn(prevVal, curVal, idx, obj) {
+ //Each position should be visited one time, which means k is accessed one time during iterations.
+ called++;
+ if (typeof kIndex[idx] === "undefined") {
+ //when current position is visited, its previous index should has been visited.
+ if (idx !== 0 && typeof kIndex[idx - 1] === "undefined") {
+ result = false;
+ }
+ kIndex[idx] = 1;
+ } else {
+ result = false;
+ }
+ }
+
+ [11, 12, 13, 14].reduce(callbackfn, 1);
+
+ return result && called === 4;
+ },
+
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-7.js
new file mode 100644
index 000000000..34a32b1de
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-7.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-7.js",
+
+ description: "Array.prototype.reduce - unhandled exceptions happened in callbackfn terminate iteration",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 0) {
+ accessed = true;
+ }
+ if (idx === 0) {
+ throw new Error("Exception occurred in callbackfn");
+ }
+ }
+
+ var obj = { 0: 11, 4: 10, 10: 8, length: 20 };
+
+ try {
+ Array.prototype.reduce.call(obj, callbackfn, 1);
+ return false;
+ } catch (ex) {
+ return (ex instanceof Error) && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-8.js
new file mode 100644
index 000000000..97df29d49
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-8.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-8.js",
+
+ description: "Array.prototype.reduce - element changed by callbackfn on previous iterations is observed",
+
+ test: function testcase() {
+
+ var result = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 0) {
+ obj[idx + 1] = 8;
+ }
+
+ if (idx === 1) {
+ result = (curVal === 8);
+ }
+ }
+
+ var obj = { 0: 11, 1: 12, length: 2 };
+
+ Array.prototype.reduce.call(obj, callbackfn, 1);
+ return result;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-9.js
new file mode 100644
index 000000000..6419914a6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-9.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.21-9-c-ii-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.21/15.4.4.21-9-c-ii-9.js",
+
+ description: "Array.prototype.reduce - callbackfn is called with 0 formal parameter",
+
+ test: function testcase() {
+
+ var called = 0;
+ function callbackfn() {
+ called++;
+ }
+
+ [11, 12].reduce(callbackfn, 1);
+ return 2 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduce);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js
new file mode 100644
index 000000000..9e9ca8e5e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js
@@ -0,0 +1,36 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-0-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js",
+
+description: "Array.prototype.reduceRight must exist as a function",
+
+test: function testcase() {
+ var f = Array.prototype.reduceRight;
+ if (typeof(f) === "function") {
+ return true;
+ }
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js
new file mode 100644
index 000000000..0fe764a1b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js
@@ -0,0 +1,39 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-0-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js",
+
+description: "Array.prototype.reduceRight.length must be 1",
+
+test: function testcase() {
+ if (Array.prototype.reduceRight.length === 1) {
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js
new file mode 100644
index 000000000..2fcdcb810
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js",
+
+ description: "Array.prototype.reduceRight applied to undefined throws a TypeError",
+
+ test: function testcase() {
+ try {
+ Array.prototype.reduceRight.call(undefined);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js
new file mode 100644
index 000000000..3edafb3af
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js",
+
+ description: "Array.prototype.reduceRight applied to the Math object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return '[object Math]' === Object.prototype.toString.call(obj);
+ }
+
+ try {
+ Math.length = 1;
+ Math[0] = 1;
+ return Array.prototype.reduceRight.call(Math, callbackfn, 1) && accessed;
+ } finally {
+ delete Math[0];
+ delete Math.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js
new file mode 100644
index 000000000..f8c55f8d7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js",
+
+ description: "Array.prototype.reduceRight applied to Date object",
+
+ test: function testcase() {
+
+ var obj = new Date();
+ obj.length = 1;
+ obj[0] = 1;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj instanceof Date;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js
new file mode 100644
index 000000000..8c2b0df8d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js",
+
+ description: "Array.prototype.reduceRight applied to RegExp object",
+
+ test: function testcase() {
+
+ var obj = new RegExp();
+ obj.length = 1;
+ obj[0] = 1;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, o) {
+ accessed = true;
+ return o instanceof RegExp;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js
new file mode 100644
index 000000000..28eda5e40
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js",
+
+ description: "Array.prototype.reduceRight applied to the JSON object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return ('[object JSON]' === Object.prototype.toString.call(obj));
+ }
+
+ try {
+ JSON.length = 1;
+ JSON[0] = 1;
+ return Array.prototype.reduceRight.call(JSON, callbackfn, 1) && accessed;
+ } finally {
+ delete JSON.length;
+ delete JSON[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js
new file mode 100644
index 000000000..4afbaabfe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js",
+
+ description: "Array.prototype.reduceRight applied to Error object",
+
+ test: function testcase() {
+
+ var obj = new Error();
+ obj.length = 1;
+ obj[0] = 1;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, o) {
+ accessed = true;
+ return o instanceof Error;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js
new file mode 100644
index 000000000..af2bd6be7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js",
+
+ description: "Array.prototype.reduceRight applied to the Arguments object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return '[object Arguments]' === Object.prototype.toString.call(obj);
+ }
+
+ var obj = (function () {
+ return arguments;
+ }("a", "b"));
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, "a") && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js
new file mode 100644
index 000000000..163be654d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js",
+
+ description: "Array.prototype.reduceRight applied to null throws a TypeError",
+
+ test: function testcase() {
+ try {
+ Array.prototype.reduceRight.call(null);
+ return false;
+ } catch (e) {
+ return (e instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js
new file mode 100644
index 000000000..816c41b47
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js",
+
+ description: "Array.prototype.reduceRight applied to boolean primitive",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj instanceof Boolean;
+ }
+
+ try {
+ Boolean.prototype[0] = 1;
+ Boolean.prototype.length = 1;
+ return Array.prototype.reduceRight.call(false, callbackfn, 1) && accessed;
+ } finally {
+ delete Boolean.prototype[0];
+ delete Boolean.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js
new file mode 100644
index 000000000..ca76b64b0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js",
+
+ description: "Array.prototype.reduceRight applied to Boolean object",
+
+ test: function testcase() {
+
+ var obj = new Boolean(true);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj instanceof Boolean;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js
new file mode 100644
index 000000000..6486ab859
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js",
+
+ description: "Array.prototype.reduceRight applied to number primitive",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj instanceof Number;
+ }
+
+ try {
+ Number.prototype[0] = 1;
+ Number.prototype.length = 1;
+ return Array.prototype.reduceRight.call(2.5, callbackfn, 1) && accessed;
+ } finally {
+ delete Number.prototype[0];
+ delete Number.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js
new file mode 100644
index 000000000..caece69ff
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js",
+
+ description: "Array.prototype.reduceRight applied to Number object",
+
+ test: function testcase() {
+
+ var obj = new Number(-128);
+ obj.length = 2;
+ obj[0] = 11;
+ obj[1] = 12;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, o) {
+ accessed = true;
+ return o instanceof Number;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js
new file mode 100644
index 000000000..05f11136e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js",
+
+ description: "Array.prototype.reduceRight applied to string primitive",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj instanceof String;
+ }
+
+ return Array.prototype.reduceRight.call("hello\nworld\\!", callbackfn, "h") && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js
new file mode 100644
index 000000000..1d92f76f6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js",
+
+ description: "Array.prototype.reduceRight applied to String object",
+
+ test: function testcase() {
+
+ var obj = new String("hello\nworld\\!");
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, o) {
+ accessed = true;
+ return o instanceof String;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, "h") && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js
new file mode 100644
index 000000000..408e434af
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-1-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js",
+
+ description: "Array.prototype.reduceRight applied to Function object",
+
+ test: function testcase() {
+
+ var obj = function (a, b) {
+ return a + b;
+ };
+ obj[0] = 11;
+ obj[1] = 9;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, o) {
+ accessed = true;
+ return o instanceof Function;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js
new file mode 100644
index 000000000..b973c594b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-10-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js",
+
+description: "Array.prototype.reduceRight doesn't mutate the Array on which it is called on",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ return 1;
+ }
+ var srcArr = [1,2,3,4,5];
+ srcArr.reduceRight(callbackfn);
+ if(srcArr[0] === 1 &&
+ srcArr[1] === 2 &&
+ srcArr[2] === 3 &&
+ srcArr[3] === 4 &&
+ srcArr[4] === 5)
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js
new file mode 100644
index 000000000..8055951fb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-10-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js",
+
+description: "Array.prototype.reduceRight reduces array in descending order of indices",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ return prevVal + curVal;
+ }
+ var srcArr = ['1','2','3','4','5'];
+ if(srcArr.reduceRight(callbackfn) === '54321')
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js
new file mode 100644
index 000000000..a828d3efb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-10-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js",
+
+description: "Array.prototype.reduceRight - subclassed array with length 1",
+
+test: function testcase() {
+ foo.prototype = [1];
+ function foo() {}
+ var f = new foo();
+
+ function cb(){}
+ if(f.reduceRight(cb) === 1)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js
new file mode 100644
index 000000000..01489868b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-10-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js",
+
+description: "Array.prototype.reduceRight - subclassed array with length more than 1",
+
+test: function testcase() {
+ foo.prototype = new Array(0, 1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ function cb(prevVal, curVal, idx, obj){return prevVal + curVal;}
+ if(f.reduceRight(cb) === 6)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js
new file mode 100644
index 000000000..dbf2b30fd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-10-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js",
+
+description: "Array.prototype.reduceRight reduces array in descending order of indices(initialvalue present)",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ return prevVal + curVal;
+ }
+ var srcArr = ['1','2','3','4','5'];
+ if(srcArr.reduceRight(callbackfn,'6') === '654321')
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js
new file mode 100644
index 000000000..fdbef849e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-10-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js",
+
+description: "Array.prototype.reduceRight - subclassed array when initialvalue provided",
+
+test: function testcase() {
+ foo.prototype = new Array(0, 1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ function cb(prevVal, curVal, idx, obj){return prevVal + curVal;}
+ if(f.reduceRight(cb,"4") === "43210")
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js
new file mode 100644
index 000000000..500febcfa
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-10-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js",
+
+description: "Array.prototype.reduceRight - subclassed array when length to 1 and initialvalue provided",
+
+test: function testcase() {
+ foo.prototype = [1];
+ function foo() {}
+ var f = new foo();
+
+ function cb(prevVal, curVal, idx, obj){return prevVal + curVal;}
+ if(f.reduceRight(cb,"4") === "41")
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js
new file mode 100644
index 000000000..a68457fed
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-10-8",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js",
+
+description: "Array.prototype.reduceRight doesn't visit expandos",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ callCnt++;
+ }
+ var srcArr = ['1','2','3','4','5'];
+ srcArr["i"] = 10;
+ srcArr[true] = 11;
+
+ srcArr.reduceRight(callbackfn);
+
+ if(callCnt == 4)
+ {
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js
new file mode 100644
index 000000000..24b8ee297
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js",
+
+ description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an own data property",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: 2
+ };
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js
new file mode 100644
index 000000000..3ef95e661
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js",
+
+ description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an inherited accessor property",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var Con = function () { };
+
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+
+ return Array.prototype.reduceRight.call(child, callbackfn, 11) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js
new file mode 100644
index 000000000..ec3ecf89a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js",
+
+ description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an own accessor property without a get function",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return typeof obj.length === "undefined";
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 12
+ };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 111) === 111 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js
new file mode 100644
index 000000000..7180feb45
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js",
+
+ description: "Array.prototype.reduceRight - 'length' is own accessor property without a get function that overrides an inherited accessor property",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return typeof obj.length === "undefined";
+ }
+
+ try {
+ Object.defineProperty(Object.prototype, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var obj = { 0: 12, 1: 13 };
+ Object.defineProperty(obj, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 11) === 11 && !accessed;
+ } finally {
+ delete Object.prototype.length;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js
new file mode 100644
index 000000000..99905d0b1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js",
+
+ description: "Array.prototype.reduceRight applied to the Array-like object that 'length' is inherited accessor property without a get function",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return curVal > 10;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 11;
+ child[1] = 12;
+
+ return Array.prototype.reduceRight.call(child, callbackfn, 111) === 111 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js
new file mode 100644
index 000000000..83e38c8ba
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js",
+
+ description: "Array.prototype.reduceRight applied to the Array-like object that 'length' property doesn't exist",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return curVal > 10;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 111) === 111 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-15.js
new file mode 100644
index 000000000..6ff14e3b7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-15.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-15.js",
+
+ description: "Array.prototype.reduceRight - 'length' is property of the global object",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === fnGlobalObject().length;
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 12;
+ fnGlobalObject()[1] = 11;
+ fnGlobalObject()[2] = 9;
+ fnGlobalObject().length = 2;
+ return Array.prototype.reduceRight.call(fnGlobalObject(), callbackfn, 111) && accessed;
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js
new file mode 100644
index 000000000..393e9a076
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js",
+
+ description: "Array.prototype.reduceRight applied to the Arguments object, which implements its own property get method",
+
+ test: function testcase() {
+
+ var arg;
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ var func = function (a, b) {
+ arg = arguments;
+ return Array.prototype.reduceRight.call(arguments, callbackfn, 11);
+ };
+
+ return func(12, 11) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js
new file mode 100644
index 000000000..1838dc4a7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js",
+
+ description: "Array.prototype.reduceRight applied to String object, which implements its own property get method",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var str = new String("432");
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 3;
+ }
+
+ try {
+ String.prototype[3] = "1";
+ return Array.prototype.reduceRight.call(str, callbackfn, 111) && accessed;
+ } finally {
+ delete String.prototype[3];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js
new file mode 100644
index 000000000..08a0d65fb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js",
+
+ description: "Array.prototype.reduceRight applied to Function object, which implements its own property get method",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var fun = function (a, b) {
+ return a + b;
+ };
+ fun[0] = 12;
+ fun[1] = 11;
+ fun[2] = 9;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ return Array.prototype.reduceRight.call(fun, callbackfn, 11) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js
new file mode 100644
index 000000000..8cf787599
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js",
+
+ description: "Array.prototype.reduceRight - 'length' is own data property on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ return [12, 11].reduceRight(callbackfn, 11) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js
new file mode 100644
index 000000000..3e889d481
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js",
+
+ description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an own data property that overrides an inherited data property",
+
+ test: function testcase() {
+
+ var accessed = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.reduceRight.call(child, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js
new file mode 100644
index 000000000..3de84281c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js",
+
+ description: "Array.prototype.reduceRight - 'length' is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var arrProtoLen;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ try {
+ arrProtoLen = Array.prototype.length;
+ Array.prototype.length = 0;
+
+ return [12, 11].reduceRight(callbackfn, 11) && accessed;
+ } finally {
+ Array.prototype.length = arrProtoLen;
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js
new file mode 100644
index 000000000..99994f963
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js",
+
+ description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an own data property that overrides an inherited accessor property",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ Object.defineProperty(child, "length", {
+ value: 2,
+ configurable: true
+ });
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.reduceRight.call(child, callbackfn) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js
new file mode 100644
index 000000000..2437410f0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js",
+
+ description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an inherited data property",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var proto = { length: 2 };
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ function callbackfn1(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ return Array.prototype.reduceRight.call(child, callbackfn1, 11) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js
new file mode 100644
index 000000000..219e9afe9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js",
+
+ description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an own accessor property",
+
+ test: function testcase() {
+
+ var accessed = true;
+ var obj = {};
+ obj[0] = 12;
+ obj[1] = 11;
+ obj[2] = 9;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 11) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js
new file mode 100644
index 000000000..b09dc6ceb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js",
+
+ description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an own accessor property that overrides an inherited data property",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ var proto = { length: 3 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.reduceRight.call(child, callbackfn, 11) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js
new file mode 100644
index 000000000..5fe7371e3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-2-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js",
+
+ description: "Array.prototype.reduceRight applied to Array-like object, 'length' is an own accessor property that overrides an inherited accessor property",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn1(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return obj.length === 2;
+ }
+
+ var proto = {};
+ Object.defineProperty(proto, "length", {
+ get: function () {
+ return 3;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ Object.defineProperty(child, "length", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+ child[0] = 12;
+ child[1] = 11;
+ child[2] = 9;
+
+ return Array.prototype.reduceRight.call(child, callbackfn1, 111) && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js
new file mode 100644
index 000000000..1cb80a737
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is undefined",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: undefined };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js
new file mode 100644
index 000000000..dd0842ab0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a number (value is NaN)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: NaN };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js
new file mode 100644
index 000000000..8ac29198b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a string containing a positive number",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "2" };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js
new file mode 100644
index 000000000..12a082d48
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a string containing a negative number",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 0: 11, 1: 12, 2: 9, length: "-4294967294" };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js
new file mode 100644
index 000000000..158ca39b5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a string containing a decimal number",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "2.5" };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js
new file mode 100644
index 000000000..897b0b2fb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a string containing +/-Infinity",
+
+ test: function testcase() {
+
+ var accessed1 = false;
+ var accessed2 = false;
+ var accessed3 = false;
+
+ function callbackfn1(prevVal, curVal, idx, obj) {
+ accessed1 = true;
+ }
+
+ function callbackfn2(prevVal, curVal, idx, obj) {
+ accessed2 = true;
+ }
+
+ function callbackfn3(prevVal, curVal, idx, obj) {
+ accessed3 = true;
+ }
+
+ var obj1 = { 0: 9, length: "Infinity" };
+ var obj2 = { 0: 9, length: "-Infinity" };
+ var obj3 = { 0: 9, length: "+Infinity" };
+
+ return Array.prototype.reduceRight.call(obj1, callbackfn1, 1) === 1 &&
+ Array.prototype.reduceRight.call(obj2, callbackfn2, 2) === 2 &&
+ Array.prototype.reduceRight.call(obj3, callbackfn3, 3) === 3 &&
+ !accessed1 && !accessed2 && !accessed3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js
new file mode 100644
index 000000000..c15aa7fbf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a string containing an exponential number",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "2E0" };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js
new file mode 100644
index 000000000..10be221b2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a string containing a hex number",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "0x0002" };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js
new file mode 100644
index 000000000..f085a76d5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a string containing a number with leading zeros",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: "0002.00" };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js
new file mode 100644
index 000000000..a0d070789
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a string that can't convert to a number",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, 1: 8, length: "two" };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 11) === 11 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js
new file mode 100644
index 000000000..597cd0ea3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js
@@ -0,0 +1,73 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is an object which has an own toString method",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var toStringAccessed = false;
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: {
+ toString: function () {
+ toStringAccessed = true;
+ return '2';
+ }
+ }
+ };
+
+ // objects inherit the default valueOf() method from Object
+ // that simply returns itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2 && toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js
new file mode 100644
index 000000000..cc90528cf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js",
+
+ description: "Array.prototype.reduceRight applied to an Array-like object, 'length' is 0 (length overridden to false(type conversion))",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: false };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js
new file mode 100644
index 000000000..78d6b5825
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is an Object which has an own valueOf method",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var valueOfAccessed = false;
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ }
+ };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2 && valueOfAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js
new file mode 100644
index 000000000..038ac1d1d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js
@@ -0,0 +1,73 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js",
+
+ description: "Array.prototype.reduceRight - 'length' is an object that has an own valueOf method that returns an object and toString method that returns a string",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ },
+ toString: function () {
+ toStringAccessed = true;
+ return '2';
+ }
+ }
+ };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2 && valueOfAccessed && toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js
new file mode 100644
index 000000000..6b43a27ef
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js",
+
+ description: "Array.prototype.reduceRight throws TypeError exception when 'length' is an object with toString and valueOf methods that don’t return primitive values",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var toStringAccessed = false;
+ var valueOfAccessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 12,
+
+ length: {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return {};
+ },
+ toString: function () {
+ toStringAccessed = true;
+ return {};
+ }
+ }
+ };
+
+ try {
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && toStringAccessed && valueOfAccessed && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js
new file mode 100644
index 000000000..03792b0c1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js
@@ -0,0 +1,79 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js",
+
+ description: "Array.prototype.reduceRight uses inherited valueOf method when 'length' is an object with an own toString and inherited valueOf methods",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ var valueOfAccessed = false;
+ var toStringAccessed = false;
+
+ var proto = {
+ valueOf: function () {
+ valueOfAccessed = true;
+ return 2;
+ }
+ };
+ var Con = function () { };
+ Con.prototype = proto;
+ var child = new Con();
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ child.toString = function () {
+ toStringAccessed = true;
+ return '1';
+ };
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: child
+ };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2 && valueOfAccessed && !toStringAccessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js
new file mode 100644
index 000000000..da151e63d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a positive non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 0: 12, 1: 11, 2: 9, length: 2.685 };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js
new file mode 100644
index 000000000..8a33d7904
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a negative non-integer, ensure truncation occurs in the proper direction",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = {
+ 0: 12,
+ 1: 11,
+ 2: 9,
+ length: -4294967294.5
+ };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js
new file mode 100644
index 000000000..aaad1bf9a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is boundary value (2^32)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = {
+ 0: 12,
+ length: 4294967296
+ };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js
new file mode 100644
index 000000000..2ea16b112
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is boundary value (2^32 + 1)",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 0) {
+ testResult1 = false;
+ }
+
+ if (idx === 0) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = {
+ 0: 11,
+ 1: 9,
+ length: 4294967297
+ };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js
new file mode 100644
index 000000000..9345af107
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a number (value is 0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: 0 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js
new file mode 100644
index 000000000..5c90ae5b3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a number (value is +0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: +0 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js
new file mode 100644
index 000000000..f20b13fb1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a number (value is -0)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: -0 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js
new file mode 100644
index 000000000..d86c7572e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a number (value is positive)",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 1: 11, 2: 9, length: 2 };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js
new file mode 100644
index 000000000..a83c3292e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a number (value is negative)",
+
+ test: function testcase() {
+
+ var testResult1 = true;
+ var testResult2 = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx > 1) {
+ testResult1 = false;
+ }
+
+ if (idx === 1) {
+ testResult2 = true;
+ }
+ return false;
+ }
+
+ var obj = { 1: 11, 2: 9, length: -4294967294 };
+
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return testResult1 && testResult2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js
new file mode 100644
index 000000000..e7248d309
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a number (value is Infinity)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: Infinity };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js
new file mode 100644
index 000000000..01e783f90
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-3-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js",
+
+ description: "Array.prototype.reduceRight - value of 'length' is a number (value is -Infinity)",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ }
+
+ var obj = { 0: 9, length: -Infinity };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === 1 && !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js
new file mode 100644
index 000000000..64edbf1a1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-4-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js",
+
+description: "Array.prototype.reduceRight throws TypeError if callbackfn is undefined",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight();
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js
new file mode 100644
index 000000000..856928a34
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-4-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js",
+
+ description: "Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 2",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js
new file mode 100644
index 000000000..b59ad1a93
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-4-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js",
+
+ description: "Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 3",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js
new file mode 100644
index 000000000..36516a69b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-4-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js",
+
+ description: "Array.prototype.reduceRight - 'callbackfn' is a function",
+
+ test: function testcase() {
+
+ var initialValue = 0;
+ function callbackfn(accum, val, idx, obj) {
+ accum += val;
+ return accum;
+ }
+
+ return 20 === [11, 9].reduceRight(callbackfn, initialValue);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-15.js
new file mode 100644
index 000000000..425840a4e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-15.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-4-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-15.js",
+
+ description: "Array.prototype.reduceRight - calling with no callbackfn is the same as passing undefined for callbackfn",
+
+ test: function testcase() {
+ var obj = { 10: 10 };
+ var lengthAccessed = false;
+ var loopAccessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ lengthAccessed = true;
+ return 20;
+ },
+ configurable: true
+ });
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ loopAccessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, undefined);
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && lengthAccessed && !loopAccessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js
new file mode 100644
index 000000000..4136a32fd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-4-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js",
+
+description: "Array.prototype.reduceRight throws ReferenceError if callbackfn is unreferenced",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight(foo);
+ }
+ catch(e) {
+ if(e instanceof ReferenceError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js
new file mode 100644
index 000000000..62e55e603
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-4-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js",
+
+description: "Array.prototype.reduceRight throws TypeError if callbackfn is null",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight(null);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js
new file mode 100644
index 000000000..4a150212c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-4-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js",
+
+description: "Array.prototype.reduceRight throws TypeError if callbackfn is boolean",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight(true);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js
new file mode 100644
index 000000000..42ad132ae
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-4-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js",
+
+description: "Array.prototype.reduceRight throws TypeError if callbackfn is number",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight(5);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js
new file mode 100644
index 000000000..a088cd135
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-4-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js",
+
+description: "Array.prototype.reduceRight throws TypeError if callbackfn is string",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight("abc");
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js
new file mode 100644
index 000000000..c6726bb0c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js
@@ -0,0 +1,45 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-4-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js",
+
+description: "Array.prototype.reduceRight throws TypeError if callbackfn is Object without [[Call]] internal method",
+
+test: function testcase() {
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight(new Object());
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js
new file mode 100644
index 000000000..c1f239981
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-4-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js",
+
+ description: "Array.prototype.reduceRight - side effects produced by step 2 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js
new file mode 100644
index 000000000..68a8a0993
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-4-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js",
+
+ description: "Array.prototype.reduceRight - side effects produced by step 3 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "2";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, null);
+ return false;
+ } catch (ex) {
+ return ex instanceof TypeError && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js
new file mode 100644
index 000000000..069b80884
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-5-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js",
+
+description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (empty array), no initVal",
+
+test: function testcase() {
+ function cb(){}
+
+ try {
+ [].reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js
new file mode 100644
index 000000000..122d199a6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-5-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js",
+
+ description: "Array.prototype.reduceRight - side-effects produced by step 2 when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js
new file mode 100644
index 000000000..24d265719
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-5-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js",
+
+ description: "Array.prototype.reduceRight - side-effects produced by step 3 when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "0";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js
new file mode 100644
index 000000000..500c8446b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-5-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js",
+
+ description: "Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 2",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js
new file mode 100644
index 000000000..4da861dd4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-5-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js",
+
+ description: "Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 3",
+
+ test: function testcase() {
+
+ var obj = { 0: 11, 1: 12 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js
new file mode 100644
index 000000000..7d4257eaf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-5-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js",
+
+description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden to null (type conversion)), no initVal",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = null;
+
+ function cb(){}
+ try {
+ f.reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js
new file mode 100644
index 000000000..24d103f04
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-5-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js",
+
+description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden to false (type conversion)), no initVal",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = false;
+
+ function cb(){}
+ try {
+ f.reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js
new file mode 100644
index 000000000..11558deb5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-5-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js",
+
+description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden to 0 (type conversion)), no initVal",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 0;
+
+ function cb(){}
+ try {
+ f.reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js
new file mode 100644
index 000000000..8ecbaa674
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-5-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js",
+
+description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden to '0' (type conversion)), no initVal",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = '0';
+
+ function cb(){}
+ try {
+ f.reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js
new file mode 100644
index 000000000..20475e500
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-5-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js",
+
+description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden with obj with valueOf), no initVal",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { valueOf: function () { return 0;}};
+ f.length = o;
+
+ function cb(){}
+ try {
+ f.reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js
new file mode 100644
index 000000000..e77281c48
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-5-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js",
+
+description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden with obj w/o valueOf (toString)), no initVal",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { toString: function () { return '0';}};
+ f.length = o;
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+
+ function cb(){}
+ try {
+ f.reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js
new file mode 100644
index 000000000..34bceb51e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-5-8",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js",
+
+description: "Array.prototype.reduceRight throws TypeError if 'length' is 0 (subclassed Array, length overridden with []), no initVal",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ function cb(){}
+ try {
+ f.reduceRight(cb);
+ }
+ catch (e) {
+ if (e instanceof TypeError) {
+ return true;
+ }
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js
new file mode 100644
index 000000000..115d80933
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-5-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js",
+
+ description: "Array.prototype.reduceRight - 'initialValue' is returned if 'len' is 0 and 'initialValue' is present",
+
+ test: function testcase() {
+
+ var initialValue = 10;
+ return initialValue === [].reduceRight(function () { }, initialValue);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js
new file mode 100644
index 000000000..4801653a4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js
@@ -0,0 +1,42 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-7-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js",
+
+description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (empty array)",
+
+test: function testcase() {
+ function cb(){}
+
+ try {
+ if([].reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js
new file mode 100644
index 000000000..e9f26b78b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-7-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js",
+
+ description: "Array.prototype.reduceRight - 'initialValue' is present",
+
+ test: function testcase() {
+
+ var str = "initialValue is present";
+ return str === [].reduceRight(function () { }, str);
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js
new file mode 100644
index 000000000..6c08f1eb5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js
@@ -0,0 +1,41 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-7-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js",
+
+ description: "Array.prototype.reduceRight - 'initialValue' is not present",
+
+ test: function testcase() {
+
+ var str = "initialValue is not present";
+ return str === [str].reduceRight(function () { });
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js
new file mode 100644
index 000000000..ad8d9d949
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-7-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js",
+
+description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to null (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = null;
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js
new file mode 100644
index 000000000..8852bb41b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-7-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js",
+
+description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to false (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = false;
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js
new file mode 100644
index 000000000..b51617930
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-7-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js",
+
+description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to 0 (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = 0;
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js
new file mode 100644
index 000000000..3eb4e7ff2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-7-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js",
+
+description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden to '0' (type conversion))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+ f.length = '0';
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js
new file mode 100644
index 000000000..287167390
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-7-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js",
+
+description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with obj with valueOf)",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { valueOf: function () { return 0;}};
+ f.length = o;
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js
new file mode 100644
index 000000000..7c52dbe00
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-7-7",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js",
+
+description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with obj w/o valueOf (toString))",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ var o = { toString: function () { return '0';}};
+ f.length = o;
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js
new file mode 100644
index 000000000..85fe44bd9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-7-8",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js",
+
+description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with [])",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js
new file mode 100644
index 000000000..bef70e808
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-7-9",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js",
+
+description: "Array.prototype.reduceRight returns initialValue if 'length' is 0 and initialValue is present (subclassed Array, length overridden with [0])",
+
+test: function testcase() {
+ foo.prototype = new Array(1, 2, 3);
+ function foo() {}
+ var f = new foo();
+
+ f.length = [0];
+
+ // objects inherit the default valueOf method of the Object object;
+ // that simply returns the itself. Since the default valueOf() method
+ // does not return a primitive value, ES next tries to convert the object
+ // to a number by calling its toString() method and converting the
+ // resulting string to a number.
+ //
+ // The toString( ) method on Array converts the array elements to strings,
+ // then returns the result of concatenating these strings, with commas in
+ // between. An array with no elements converts to the empty string, which
+ // converts to the number 0. If an array has a single element that is a
+ // number n, the array converts to a string representation of n, which is
+ // then converted back to n itself. If an array contains more than one element,
+ // or if its one element is not a number, the array converts to NaN.
+
+ function cb(){}
+ try {
+ if(f.reduceRight(cb,1) === 1)
+ return true;
+ }
+ catch (e) { }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-1.js
new file mode 100644
index 000000000..15535e2c6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-1.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-1.js",
+
+ description: "Array.prototype.reduceRight - no observable effects occur if 'len' is 0",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ var obj = { length: 0 };
+
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ accessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-2.js
new file mode 100644
index 000000000..fdd1772a9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-2.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-2.js",
+
+ description: "Array.prototype.reduceRight - modifications to length don't change number of iterations in step 9",
+
+ test: function testcase() {
+ var called = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ called++;
+ return prevVal + curVal;
+ }
+
+ var arr = [0, 1, 2, 3];
+ Object.defineProperty(arr, "4", {
+ get: function () {
+ arr.length = 2;
+ return 10;
+ },
+ configurable: true
+ });
+
+ var preVal = arr.reduceRight(callbackfn);
+
+ return preVal === 11 && called === 2;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-3.js
new file mode 100644
index 000000000..809e5d1a7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-3.js
@@ -0,0 +1,72 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-3.js",
+
+ description: "Array.prototype.reduceRight - while loop is breaken once 'kPresent' is true",
+
+ test: function testcase() {
+
+ var called = 0;
+ var testResult = false;
+ var firstCalled = 0;
+ var secondCalled = 0;
+
+ function callbackfn(prevVal, val, idx, obj) {
+ if (called === 0) {
+ testResult = (idx === 1);
+ }
+ called++;
+ }
+
+ var arr = [, , , ];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ firstCalled++;
+ return 9;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ secondCalled++;
+ return 11;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+
+ return testResult && firstCalled === 1 && secondCalled === 1;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js
new file mode 100644
index 000000000..04c5cbe95
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-ii-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js",
+
+ description: "Array.prototype.reduceRight - added properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ var obj = {};
+
+ function callbackfn(prevVal, curVal, idx, obj) { }
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ obj[2] = "accumulator";
+ return 3;
+ },
+ configurable: true
+ });
+
+ return Array.prototype.reduceRight.call(obj, callbackfn) === "accumulator";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js
new file mode 100644
index 000000000..ab2972425
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-ii-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js",
+
+ description: "Array.prototype.reduceRight - deleted properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ var obj = { 2: "accumulator", 3: "another" };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ delete obj[2];
+ return 5;
+ },
+ configurable: true
+ });
+
+ return "accumulator" !== Array.prototype.reduceRight.call(obj, function () { });
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-1.js
new file mode 100644
index 000000000..c84ec7b6c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-1.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-1.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 0) {
+ testResult = (prevVal === 1);
+ }
+ }
+
+ var obj = { 0: 0, 1: 1, length: 2 };
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-10.js
new file mode 100644
index 000000000..44b6149e5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-10.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-10.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property on an Array",
+
+ test: function testcase() {
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2) {
+ testResult = (curVal === 2);
+ }
+ }
+
+ var arr = [0, 1, , 3];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-11.js
new file mode 100644
index 000000000..e914490ca
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-11.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-11.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "20");
+ }
+ }
+
+ var proto = { 0: 0, 1: 1, 2: 2 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Object.defineProperty(child, "2", {
+ get: function () {
+ return "20";
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(child, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-12.js
new file mode 100644
index 000000000..93613cefb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-12.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-12.js",
+
+ description: " Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "20");
+ }
+ }
+
+ try {
+ Array.prototype[2] = 2;
+ var arr = [0, 1];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "20";
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-13.js
new file mode 100644
index 000000000..fd5f6c51b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-13.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-13.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object",
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "20");
+ }
+ }
+
+ var proto = { 0: 0, 1: 1 };
+
+ Object.defineProperty(proto, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Object.defineProperty(child, "2", {
+ get: function () {
+ return "20";
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(child, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-14.js
new file mode 100644
index 000000000..97367fcf1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-14.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-14.js",
+
+ description: " Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "20");
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var arr = [0, 1, , ];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "20";
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-15.js
new file mode 100644
index 000000000..c8d443c4a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-15.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-15.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ var proto = { 0: 0, 1: 1 };
+
+ Object.defineProperty(proto, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduceRight.call(child, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-16.js
new file mode 100644
index 000000000..04bc455c1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-16.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-16.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ var arr = [0, 1, , ];
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-17.js
new file mode 100644
index 000000000..8457e2f1f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-17.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-17.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof prevVal === "undefined");
+ }
+ }
+
+ var obj = { 0: 0, 1: 1, length: 3 };
+
+ Object.defineProperty(obj, "2", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-18.js
new file mode 100644
index 000000000..4fa0f986b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-18.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-18.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof prevVal === "undefined");
+ }
+ }
+
+ var arr = [0, 1];
+
+ Object.defineProperty(arr, "2", {
+ set: function () { },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-19.js
new file mode 100644
index 000000000..05924fa01
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-19.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-19.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof prevVal === "undefined");
+ }
+ }
+
+ try {
+ Object.prototype[2] = 2;
+
+ var obj = { 0: 0, 1: 1, length: 3 };
+ Object.defineProperty(obj, "2", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+ } finally {
+ delete Object.prototype[2];
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-2.js
new file mode 100644
index 000000000..04bce4291
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-2.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-2.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ var arr = [0, 1, 2];
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-20.js
new file mode 100644
index 000000000..200628e7f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-20.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-20.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof prevVal === "undefined");
+ }
+ }
+
+ try {
+ Array.prototype[2] = 2;
+ var arr = [0, 1];
+ Object.defineProperty(arr, "2", {
+ set: function () { },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-21.js
new file mode 100644
index 000000000..90df4f18f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-21.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-21.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof prevVal === "undefined");
+ }
+ }
+
+ var proto = { 0: 0, 1: 1 };
+
+ Object.defineProperty(proto, "2", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduceRight.call(child, callbackfn);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-22.js
new file mode 100644
index 000000000..2c8012d0b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-22.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-22.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof prevVal === "undefined");
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ set: function () { },
+ configurable: true
+ });
+
+ var arr = [0, 1, , ];
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-23.js
new file mode 100644
index 000000000..ddeeab596
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-23.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-23.js",
+
+ description: "Array.prototype.reduceRight - This object is the global object which contains index property",
+
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 0;
+ fnGlobalObject()[1] = 1;
+ fnGlobalObject()[2] = 2;
+ fnGlobalObject().length = 3;
+
+ Array.prototype.reduceRight.call(fnGlobalObject(), callbackfn);
+ return testResult;
+
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-25.js
new file mode 100644
index 000000000..594f0c8e3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-25.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-25.js",
+
+ description: "Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 0) {
+ testResult = (prevVal === 1);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduceRight.call(arguments, callbackfn);
+ };
+
+ func(0, 1);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-26.js
new file mode 100644
index 000000000..a4fb16351
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-26.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-26.js",
+
+ description: "Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduceRight.call(arguments, callbackfn);
+ };
+
+ func(0, 1, 2);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-27.js
new file mode 100644
index 000000000..1d857d5e3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-27.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-27.js",
+
+ description: "Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2) {
+ testResult = (prevVal === 3);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduceRight.call(arguments, callbackfn);
+ };
+
+ func(0, 1, 2, 3);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-28.js
new file mode 100644
index 000000000..434853d16
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-28.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-28.js",
+
+ description: "Array.prototype.reduceRight applied to String object, which implements its own property get method",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "2");
+ }
+ }
+
+ var str = new String("012");
+
+ Array.prototype.reduceRight.call(str, callbackfn);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-29.js
new file mode 100644
index 000000000..ddae9101d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-29.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-29.js",
+
+ description: "Array.prototype.reduceRight applied to Function object which implements its own property get method",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ var obj = function (a, b, c) {
+ return a + b + c;
+ };
+
+ obj[0] = 0;
+ obj[1] = 1;
+ obj[2] = 2;
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-3.js
new file mode 100644
index 000000000..281c1c230
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-3.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-3.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "20");
+ }
+ }
+
+ var proto = { 0: 0, 1: 1, 2: 2, length: 2 };
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[1] = "10";
+ child[2] = "20";
+ child.length = 3;
+
+ Array.prototype.reduceRight.call(child, callbackfn);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-30.js
new file mode 100644
index 000000000..9755debfc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-30.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-30.js",
+
+ description: "Array.prototype.reduceRight - element changed by getter on current iteration is observed in subsequent iterations on an Array",
+
+ test: function testcase() {
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1 && prevVal === 2);
+ }
+ }
+
+ var arr = [0];
+ var preIterVisible = false;
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 1;
+ } else {
+ return "20";
+ }
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ preIterVisible = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-31.js
new file mode 100644
index 000000000..cf4c82bdf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-31.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-31.js",
+
+ description: "Array.prototype.reduceRight - element changed by getter on current iteration is observed subsequetly on an Array-like object",
+
+ test: function testcase() {
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2 && curVal === 1);
+ }
+ }
+
+ var obj = { 0: 0, length: 3 };
+ var preIterVisible = false;
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 1;
+ } else {
+ return "20";
+ }
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ preIterVisible = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-32.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-32.js
new file mode 100644
index 000000000..f93ebd2cc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-32.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-32",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-32.js",
+
+ description: "Array.prototype.reduceRight - Exception in getter terminate iteration on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx <= 1) {
+ accessed = true;
+ }
+ }
+
+ var obj = { 0: 0, 1: 1, length: 3 };
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-33.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-33.js
new file mode 100644
index 000000000..5926e41b2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-33.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-33",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-33.js",
+
+ description: "Array.prototype.reduceRight - Exception in getter terminate iteration on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx <= 1) {
+ accessed = true;
+ }
+ }
+
+ var arr = [0, 1];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ arr.reduceRight(callbackfn);
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-4.js
new file mode 100644
index 000000000..319108324
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-4.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-4.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ try {
+ Array.prototype[2] = "11";
+ [0, 1, 2].reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-5.js
new file mode 100644
index 000000000..45e9e60a3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-5.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-5.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === "20");
+ }
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "2", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+ child[0] = "0";
+ child[1] = "1";
+ Object.defineProperty(proto, "2", {
+ value: "20",
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(child, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+}); \ No newline at end of file
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-6.js
new file mode 100644
index 000000000..3b3968912
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-6.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-6.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "2";
+ },
+ configurable: true
+ });
+ [0, 1, 2].reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[2];
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-7.js
new file mode 100644
index 000000000..c5ba174f5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-7.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-7.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ var proto = { 0: 0, 1: 1, 2: 2, length: 3 };
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+
+ Array.prototype.reduceRight.call(child, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-8.js
new file mode 100644
index 000000000..17b1092ff
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-8.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-8.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is inherited data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ try {
+ Array.prototype[0] = 0;
+ Array.prototype[1] = 1;
+ Array.prototype[2] = 2;
+ [, , ,].reduceRight(callbackfn);
+ return testResult;
+
+ } finally {
+ delete Array.prototype[0];
+ delete Array.prototype[1];
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && ![, 1].hasOwnProperty(0);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-9.js
new file mode 100644
index 000000000..1603e3c7c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-9.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-b-iii-1-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-iii-1-9.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 2);
+ }
+ }
+
+ var obj = { 0: 0, 1: 1, length: 3 };
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ return 2;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js
new file mode 100644
index 000000000..0585a4853
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-8-c-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js",
+
+description: "Array.prototype.reduceRight throws TypeError when Array is empty and initialValue is not present",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ }
+
+ var arr = new Array(10);
+ try {
+ arr.reduceRight(callbackfn);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js
new file mode 100644
index 000000000..51865416d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-8-c-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js",
+
+description: "Array.prototype.reduceRight throws TypeError when elements assigned values are deleted by reducign array length and initialValue is not present",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ }
+
+ var arr = new Array(10);
+ arr[9] = 1;
+ arr.length = 5;
+ try {
+ arr.reduceRight(callbackfn);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js
new file mode 100644
index 000000000..c51f1eac7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-8-c-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js",
+
+description: "Array.prototype.reduceRight throws TypeError when elements assigned values are deleted and initialValue is not present",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ }
+
+ var arr = [1,2,3,4,5];
+ delete arr[0];
+ delete arr[1];
+ delete arr[2];
+ delete arr[3];
+ delete arr[4];
+ try {
+ arr.reduceRight(callbackfn);
+ }
+ catch(e) {
+ if(e instanceof TypeError)
+ return true;
+ }
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js
new file mode 100644
index 000000000..cc561e4f7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-c-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js",
+
+ description: "Array.prototype.reduceRight doesn't throw error when array has no own properties but prototype contains a single property",
+
+ test: function testcase() {
+
+ var arr = [, , , ];
+
+ try {
+ Array.prototype[1] = "prototype";
+ arr.reduceRight(function () { });
+ return true;
+ } catch (ex) {
+ return false;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && ![, 1].hasOwnProperty(0);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js
new file mode 100644
index 000000000..a50898e86
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-c-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js",
+
+ description: "Array.prototype.reduceRight - side effects produced by step 2 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = { };
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ accessed = true;
+ return 2;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js
new file mode 100644
index 000000000..eb2d67bf8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-c-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js",
+
+ description: "Array.prototype.reduceRight - side effects produced by step 3 are visible when an exception occurs",
+
+ test: function testcase() {
+
+ var obj = {};
+
+ var accessed = false;
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ accessed = true;
+ return "2";
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return (ex instanceof TypeError) && accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js
new file mode 100644
index 000000000..2fcf8e764
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-c-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js",
+
+ description: "Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 2",
+
+ test: function testcase() {
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ throw new SyntaxError();
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js
new file mode 100644
index 000000000..fe239894c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-8-c-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js",
+
+ description: "Array.prototype.reduceRight - the exception is not thrown if exception was thrown by step 3",
+
+ test: function testcase() {
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ return {
+ toString: function () {
+ throw new SyntaxError();
+ }
+ };
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, function () { });
+ return false;
+ } catch (ex) {
+ return !(ex instanceof TypeError);
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js
new file mode 100644
index 000000000..34791368e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.22-9-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js",
+
+ description: "Array.prototype.reduceRight doesn't consider new elements which index is larger than array original length added to array after it is called, consider new elements which index is smaller than array length",
+
+ test: function testcase() {
+ function callbackfn(prevVal, curVal, idx, obj) {
+ arr[5] = 6;
+ arr[2] = 3;
+ return prevVal + curVal;
+ }
+
+ var arr = ['1', 2, , 4, '5'];
+ return arr.reduceRight(callbackfn) === "54321";
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js
new file mode 100644
index 000000000..4d51be20f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-9-2",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js",
+
+description: "Array.prototype.reduceRight considers new value of elements in array after it is called",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ arr[3] = -2;
+ arr[0] = -1;
+ return prevVal + curVal;
+ }
+
+ var arr = [1,2,3,4,5];
+ if(arr.reduceRight(callbackfn) === 13)
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js
new file mode 100644
index 000000000..e9c5b66b1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-9-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js",
+
+description: "Array.prototype.reduceRight doesn't consider unvisited deleted elements in array after the call",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ delete arr[1];
+ delete arr[4];
+ return prevVal + curVal;
+ }
+
+ var arr = ['1',2,3,4,5];
+ if(arr.reduceRight(callbackfn) === "121" ) // two elements deleted
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js
new file mode 100644
index 000000000..27f0687e6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-9-4",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js",
+
+description: "Array.prototype.reduceRight doesn't consider unvisited deleted elements when Array.length is decreased",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ arr.length = 2;
+ return prevVal + curVal;
+ }
+
+ var arr = [1,2,3,4,5];
+ if(arr.reduceRight(callbackfn) === 12 )
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js
new file mode 100644
index 000000000..b3991a7e0
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-9-5",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js",
+
+description: "Array.prototype.reduceRight - callbackfn not called for array with one element",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ callCnt++;
+ return 2;
+ }
+
+ var arr = [1];
+ if(arr.reduceRight(callbackfn) === 1 && callCnt === 0 )
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js
new file mode 100644
index 000000000..728e1b609
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-9-6",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js",
+
+description: "Array.prototype.reduceRight visits deleted element in array after the call when same index is also present in prototype",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ delete arr[1];
+ delete arr[2];
+ return prevVal + curVal;
+ }
+ Array.prototype[2] = 6;
+ var arr = ['1',2,3,4,5];
+ var res = arr.reduceRight(callbackfn);
+ delete Array.prototype[2];
+
+ if(res === "151" ) //one element deleted
+ return true;
+
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7.js
new file mode 100644
index 000000000..855aee738
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7.js
@@ -0,0 +1,43 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.22-9-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-7.js",
+
+ description: "Array.prototype.reduceRight not affect call when the array is deleted during the call",
+
+ test: function testcase() {
+ function callbackfn(prevVal, curVal, idx, obj) {
+ delete o.arr;
+ return prevVal + curVal;
+ }
+
+ var o = new Object();
+ o.arr = ['1', 2, 3, 4, 5];
+ return o.arr.reduceRight(callbackfn) === "141" && !o.hasOwnProperty("arr");
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-8.js
new file mode 100644
index 000000000..e64b379ba
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-8.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-8.js",
+
+ description: "Array.prototype.reduceRight - no observable effects occur if 'len' is 0",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn() {
+ accessed = true;
+ }
+
+ var obj = { length: 0 };
+
+ Object.defineProperty(obj, "5", {
+ get: function () {
+ accessed = true;
+ return 10;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, function () { }, "initialValue");
+ return !accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-9.js
new file mode 100644
index 000000000..7234b3656
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-9.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-9.js",
+
+ description: "Array.prototype.reduceRight - modifications to length will change number of iterations",
+
+ test: function testcase() {
+ var called = 0;
+ function callbackfn(preVal, val, idx, obj) {
+ called++;
+ }
+
+ var arr = [0, 1, 2, 3];
+ Object.defineProperty(arr, "4", {
+ get: function () {
+ arr.length = 2;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+
+ return called === 3;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js
new file mode 100644
index 000000000..e44f41c7f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-9-b-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js",
+
+description: "Array.prototype.reduceRight returns initialvalue when Array is empty and initialValue is not present",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ }
+
+ var arr = new Array(10);
+
+ if(arr.reduceRight(callbackfn,5) === 5)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-10.js
new file mode 100644
index 000000000..ef399a0bf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-10.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-10.js",
+
+ description: "Array.prototype.reduceRight - deleting property of prototype in step 8 causes deleted index property not to be visited on an Array-like Object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(preVal, val, idx, obj) {
+ accessed = true;
+ if (idx === 3) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 2: 2, length: 20 };
+
+ Object.defineProperty(obj, "5", {
+ get: function () {
+ delete Object.prototype[3];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[3] = 1;
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult && accessed;
+ } finally {
+ delete Object.prototype[3];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-11.js
new file mode 100644
index 000000000..e3f59c91d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-11.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-11.js",
+
+ description: "Array.prototype.reduceRight - deleting property of prototype in step 8 causes deleted index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0, , , ];
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ delete Array.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ arr.reduceRight(callbackfn);
+ return testResult && accessed;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-12.js
new file mode 100644
index 000000000..435c0f2b2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-12.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-12.js",
+
+ description: "Array.prototype.reduceRight - deleting own property with prototype property in step 8 causes prototype index property to be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 1) {
+ testResult = true;
+ }
+ }
+
+ var obj = { 0: 0, 1: 111, length: 10 };
+
+ Object.defineProperty(obj, "4", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-13.js
new file mode 100644
index 000000000..b0306aec9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-13.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-13.js",
+
+ description: "Array.prototype.reduceRight - deleting own property with prototype property in step 8 causes prototype index property to be visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 1) {
+ testResult = true;
+ }
+ }
+ var arr = [0, 111];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ arr.reduceRight(callbackfn);
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-14.js
new file mode 100644
index 000000000..9e5af0c36
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-14.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-14.js",
+
+ description: "Array.prototype.reduceRight - decreasing length of array in step 8 causes deleted index property not to be visited",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 2) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0, 1, 2, 3];
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ arr.length = 2;
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-15.js
new file mode 100644
index 000000000..06f01a26c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-15.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-15.js",
+
+ description: "Array.prototype.reduceRight - decreasing length of array with prototype property in step 8 causes prototype index property to be visited",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2 && curVal === "prototype") {
+ testResult = true;
+ }
+ }
+ var arr = [0, 1, 2, 3];
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "prototype";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+
+ return testResult;
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-16.js
new file mode 100644
index 000000000..60350d0ac
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-16.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-16.js",
+
+ description: "Array.prototype.reduceRight - decreasing length of array in step 8 does not delete non-configurable properties",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2 && curVal === "unconfigurable") {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, 1, 2, 3];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "unconfigurable";
+ },
+ configurable: false
+ });
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-17.js
new file mode 100644
index 000000000..2a7720d29
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-17.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-17.js",
+
+ description: "Array.prototype.reduceRight - properties added into own object are visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 0 && curVal === 0) {
+ testResult = true;
+ }
+ }
+
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+ return 1;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-18.js
new file mode 100644
index 000000000..cb57a28dd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-18.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-18.js",
+
+ description: "Array.prototype.reduceRight - properties added into own object are visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 1) {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-19.js
new file mode 100644
index 000000000..a605e2692
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-19.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-19.js",
+
+ description: "Array.prototype.reduceRight - properties added to prototype are visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 6.99) {
+ testResult = true;
+ }
+ }
+
+ var obj = { length: 6 };
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js
new file mode 100644
index 000000000..ddafa10b4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js
@@ -0,0 +1,59 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js",
+
+ description: "Array.prototype.reduceRight - added properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2 && curVal === "2") {
+ testResult = true;
+ }
+ }
+
+ var obj = {};
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ obj[2] = "2";
+ return 3;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-20.js
new file mode 100644
index 000000000..66d72597d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-20.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-20.js",
+
+ description: "Array.prototype.reduceRight - properties added to prototype can be visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 6.99) {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-21.js
new file mode 100644
index 000000000..eb94dce12
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-21.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-21.js",
+
+ description: "Array.prototype.reduceRight - deleting own property causes deleted index property not to be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 0: 10, length: 10 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "5", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-22.js
new file mode 100644
index 000000000..c22a39bba
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-22.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-22.js",
+
+ description: "Array.prototype.reduceRight - deleting own property causes deleted index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var arr = [1, 2, 4];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "6.99";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-23.js
new file mode 100644
index 000000000..f192df384
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-23.js
@@ -0,0 +1,65 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-23.js",
+
+ description: "Array.prototype.reduceRight - deleting property of prototype causes deleted index property not to be visited on an Array-like Object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 3) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 2: 2, length: 20 };
+
+ Object.defineProperty(obj, "5", {
+ get: function () {
+ delete Object.prototype[3];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[3] = 1;
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult && accessed;
+ } finally {
+ delete Object.prototype[3];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-24.js
new file mode 100644
index 000000000..cd679e690
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-24.js
@@ -0,0 +1,64 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-24.js",
+
+ description: "Array.prototype.reduceRight - deleting property of prototype causes deleted index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0, , , ];
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ delete Array.prototype[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult && accessed;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-25.js
new file mode 100644
index 000000000..8537b2177
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-25.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-25.js",
+
+ description: "Array.prototype.reduceRight - deleting own property with prototype property causes prototype index property to be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 1) {
+ testResult = true;
+ }
+ }
+
+ var obj = { 0: 0, 1: 111, 4: 10, length: 10 };
+
+ Object.defineProperty(obj, "4", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Object.prototype[1] = 1;
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-26.js
new file mode 100644
index 000000000..703b59f6b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-26.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-26.js",
+
+ description: "Array.prototype.reduceRight - deleting own property with prototype property causes prototype index property to be visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 1) {
+ testResult = true;
+ }
+ }
+ var arr = [0, 111];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype[1] = 1;
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-27.js
new file mode 100644
index 000000000..18145909c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-27.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-27.js",
+
+ description: "Array.prototype.reduceRight - decreasing length of array causes deleted index property not to be visited",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 2) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0, 1, 2, 3];
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ arr.length = 2;
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-28.js
new file mode 100644
index 000000000..ae076476f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-28.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-28.js",
+
+ description: "Array.prototype.reduceRight - decreasing length of array with prototype property causes prototype index property to be visited",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2 && curVal === "prototype") {
+ testResult = true;
+ }
+ }
+ var arr = [0, 1, 2, 3];
+
+ try {
+ Object.defineProperty(Array.prototype, "2", {
+ get: function () {
+ return "prototype";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+
+ return testResult;
+ } finally {
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-29.js
new file mode 100644
index 000000000..dc40b5d25
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-29.js
@@ -0,0 +1,66 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-29.js",
+
+ description: "Array.prototype.reduceRight - decreasing length of array does not delete non-configurable properties",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2 && curVal === "unconfigurable") {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, 1, 2, 3];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ return "unconfigurable";
+ },
+ configurable: false
+ });
+
+ Object.defineProperty(arr, "3", {
+ get: function () {
+ arr.length = 2;
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js
new file mode 100644
index 000000000..03fb3af44
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js",
+
+ description: "Array.prototype.reduceRight - deleted properties in step 2 are visible here",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 2) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 2: "2", 3: 10 };
+
+ Object.defineProperty(obj, "length", {
+ get: function () {
+ delete obj[2];
+ return 5;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+
+ return accessed && testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-4.js
new file mode 100644
index 000000000..4c1ca4aa3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-4.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-4.js",
+
+ description: "Array.prototype.reduceRight - properties added into own object in step 8 can be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ if (idx === 0 && curVal === 0) {
+ testResult = true;
+ }
+ }
+
+ var obj = { length: 2 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ Object.defineProperty(obj, "0", {
+ get: function () {
+ return 0;
+ },
+ configurable: true
+ });
+ return 1;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-5.js
new file mode 100644
index 000000000..c5c487ab1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-5.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-5.js",
+
+ description: "Array.prototype.reduceRight - properties added into own object in step 8 can be visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 1) {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-6.js
new file mode 100644
index 000000000..a0e7a96c1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-6.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-6.js",
+
+ description: "Array.prototype.reduceRight - properties added to prototype in step 8 visited on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 6.99) {
+ testResult = true;
+ }
+ }
+
+ var obj = { length: 6 };
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ Object.defineProperty(Object.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-7.js
new file mode 100644
index 000000000..cf265c01d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-7.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-7.js",
+
+ description: "Array.prototype.reduceRight - properties added to prototype in step 8 visited on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ if (idx === 1 && curVal === 6.99) {
+ testResult = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+ return 0;
+ },
+ configurable: true
+ });
+
+ try {
+ arr.reduceRight(callbackfn);
+ return testResult;
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-8.js
new file mode 100644
index 000000000..3164824f1
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-8.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-8.js",
+
+ description: "Array.prototype.reduceRight - deleting own property in step 8 causes deleted index property not to be visited on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(preVal, val, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var obj = { 0: 10, length: 10 };
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 6.99;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "5", {
+ get: function () {
+ delete obj[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn);
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-9.js
new file mode 100644
index 000000000..6cbd6436b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-9.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-b-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-9.js",
+
+ description: "Array.prototype.reduceRight - deleting own property in step 8 causes deleted index property not to be visited on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var testResult = true;
+
+ function callbackfn(preVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ testResult = false;
+ }
+ }
+
+ var arr = [0];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "6.99";
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ delete arr[1];
+ return 0;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn);
+ return testResult && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js
new file mode 100644
index 000000000..578334412
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-9-c-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js",
+
+description: "Array.prototype.reduceRight - callbackfn not called for indexes never been assigned values",
+
+test: function testcase() {
+
+ var callCnt = 0;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ callCnt++;
+ return curVal;
+ }
+
+ var arr = new Array(10);
+ arr[0] = arr[1] = undefined; //explicitly assigning a value
+ if( arr.reduceRight(callbackfn) === undefined && callCnt === 1)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js
new file mode 100644
index 000000000..cf0e513e2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 0) {
+ testResult = (curVal === 0);
+ }
+ }
+
+ var obj = { 0: 0, 1: 1, 2: 2, length: 2 };
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-10.js
new file mode 100644
index 000000000..9d29e8c74
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-10.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-10.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-11.js
new file mode 100644
index 000000000..66c16cd35
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-11.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-11.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "1");
+ }
+ }
+
+ var proto = { 0: 0, 1: 11, 2: 2 };
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Object.defineProperty(child, "1", {
+ get: function () {
+ return "1";
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(child, callbackfn, "initialValue");
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-12.js
new file mode 100644
index 000000000..815038b31
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-12.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-12.js",
+
+ description: " Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "1");
+ }
+ }
+
+ try {
+ Array.prototype[1] = 11;
+ var arr = [0, ,2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "1";
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-13.js
new file mode 100644
index 000000000..18cf483f8
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-13.js
@@ -0,0 +1,69 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-13.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array-like object",
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "1");
+ }
+ }
+
+ var proto = { 0: 0, 2: 2};
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Object.defineProperty(child, "1", {
+ get: function () {
+ return "1";
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(child, callbackfn, "initialValue");
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-14.js
new file mode 100644
index 000000000..9ccf4782e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-14.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-14.js",
+
+ description: " Array.prototype.reduceRight - element to be retrieved is own accessor property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "1");
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 11;
+ },
+ configurable: true
+ });
+
+ var arr = [0, ,2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ return "1";
+ },
+ configurable: true
+ });
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-15.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-15.js
new file mode 100644
index 000000000..73a9df327
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-15.js
@@ -0,0 +1,63 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-15",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-15.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var proto = { 0: 0, 2: 2 };
+
+ Object.defineProperty(proto, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduceRight.call(child, callbackfn, "initialValue");
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-16.js
new file mode 100644
index 000000000..c5253f062
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-16.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-16.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ var arr = [0, , 2];
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-17.js
new file mode 100644
index 000000000..b1a8fa530
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-17.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-17.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof curVal === "undefined");
+ }
+ }
+
+ var obj = { 0: 0, 2: 2, length: 3 };
+
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-18.js
new file mode 100644
index 000000000..0d08e0223
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-18.js
@@ -0,0 +1,56 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-18.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof curVal === "undefined");
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-19.js
new file mode 100644
index 000000000..6e18a01cf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-19.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-19.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof curVal === "undefined");
+ }
+ }
+
+ try {
+ Object.prototype[1] = 1;
+
+ var obj = { 0: 0, 2: 2, length: 3 };
+ Object.defineProperty(obj, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+ } finally {
+ delete Object.prototype[1];
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js
new file mode 100644
index 000000000..87897aef3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var arr = [0, 1, 2];
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-20.js
new file mode 100644
index 000000000..6441933fd
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-20.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-20.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property without a get function that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof curVal === "undefined");
+ }
+ }
+
+ try {
+ Array.prototype[1] = 1;
+ var arr = [0, ,2];
+ Object.defineProperty(arr, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-21.js
new file mode 100644
index 000000000..e50e9a137
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-21.js
@@ -0,0 +1,62 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-21.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property without a get function on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof curVal === "undefined");
+ }
+ }
+
+ var proto = { 0: 0, 2: 2 };
+
+ Object.defineProperty(proto, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduceRight.call(child, callbackfn, "initialValue");
+ return testResult;
+
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-22.js
new file mode 100644
index 000000000..6bd56c75e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-22.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-22.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is inherited accessor property without a get function on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (typeof curVal === "undefined");
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ set: function () { },
+ configurable: true
+ });
+
+ var arr = [0, , 2];
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && ![, 1].hasOwnProperty(0) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-23.js
new file mode 100644
index 000000000..8103da9f9
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-23.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-23.js",
+
+ description: "Array.prototype.reduceRight - This object is an global object which contains index property",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ var oldLen = fnGlobalObject().length;
+ fnGlobalObject()[0] = 0;
+ fnGlobalObject()[1] = 1;
+ fnGlobalObject()[2] = 2;
+ fnGlobalObject().length = 3;
+
+ Array.prototype.reduceRight.call(fnGlobalObject(), callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete fnGlobalObject()[0];
+ delete fnGlobalObject()[1];
+ delete fnGlobalObject()[2];
+ fnGlobalObject().length = oldLen;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js
new file mode 100644
index 000000000..cdaef47bc
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js",
+
+ description: "Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments is less than number of parameters)",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduceRight.call(arguments, callbackfn, "initialValue");
+ };
+
+ func(0, 1);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js
new file mode 100644
index 000000000..6347a85fe
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js",
+
+ description: "Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments equals number of parameters)",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2) {
+ testResult = (curVal === 2);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduceRight.call(arguments, callbackfn, "initialValue");
+ };
+
+ func(0, 1, 2);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js
new file mode 100644
index 000000000..df96875ee
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js
@@ -0,0 +1,52 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js",
+
+ description: "Array.prototype.reduceRight - This object is the Arguments object which implements its own property get method (number of arguments is greater than number of parameters)",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 3) {
+ testResult = (curVal === 3);
+ }
+ }
+
+ var func = function (a, b, c) {
+ Array.prototype.reduceRight.call(arguments, callbackfn, "initialValue");
+ };
+
+ func(0, 1, 2, 3);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js
new file mode 100644
index 000000000..af98e84ca
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js",
+
+ description: "Array.prototype.reduceRight applied to String object, which implements its own property get method",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "1");
+ }
+ }
+
+ var str = new String("012");
+ Array.prototype.reduceRight.call(str, callbackfn, "initialValue");
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js
new file mode 100644
index 000000000..ebcda554e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js",
+
+ description: "Array.prototype.reduceRight applied to Function object which implements its own property get method",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var initialValue = 0;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var obj = function (a, b, c) {
+ return a + b + c;
+ };
+ obj[0] = 0;
+ obj[1] = 1;
+ obj[2] = 2;
+ obj[3] = 3;
+
+ Array.prototype.reduceRight.call(obj, callbackfn, initialValue);
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+}); \ No newline at end of file
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js
new file mode 100644
index 000000000..97d0849b7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-3",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === "1");
+ }
+ }
+
+ var proto = { 0: 10, 1: 11, 2: 12, length: 2 };
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child[1] = "1";
+ child[2] = "2";
+ child.length = 3;
+
+ Array.prototype.reduceRight.call(child, callbackfn, "initialValue");
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-30.js
new file mode 100644
index 000000000..fb33db177
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-30.js
@@ -0,0 +1,70 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-30.js",
+
+ description: "Array.prototype.reduceRight - element changed by getter on previous iterations is observed on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var arr = [, ,];
+ var preIterVisible = false;
+
+ Object.defineProperty(arr, "2", {
+ get: function () {
+ preIterVisible = true;
+ return 0;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 1;
+ } else {
+ return "11";
+ }
+ },
+ configurable: true
+ });
+
+ arr.reduceRight(callbackfn, "initialValue");
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-31.js
new file mode 100644
index 000000000..9eea0a672
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-31.js
@@ -0,0 +1,71 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-31.js",
+
+ description: "Array.prototype.reduceRight - element changed by getter on previous iterations is observed on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var obj = { length: 3 };
+ var preIterVisible = false;
+
+ Object.defineProperty(obj, "2", {
+ get: function () {
+ preIterVisible = true;
+ return 0;
+ },
+ configurable: true
+ });
+
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ if (preIterVisible) {
+ return 1;
+ } else {
+ return "11";
+ }
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-32.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-32.js
new file mode 100644
index 000000000..c8add574b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-32.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-32",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-32.js",
+
+ description: "Array.prototype.reduceRight - unnhandled exceptions happened in getter terminate iteration on an Array-like object",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx <= 1) {
+ accessed = true;
+ }
+ }
+
+
+ var obj = { 0: 0, 2: 2, length: 3 };
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return false;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-33.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-33.js
new file mode 100644
index 000000000..62e92c239
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-33.js
@@ -0,0 +1,61 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-33",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-33.js",
+
+ description: "Array.prototype.reduceRight - unnhandled exceptions happened in getter terminate iteration on an Array",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx <= 1) {
+ accessed = true;
+ }
+ }
+
+ var arr = [0, , 2];
+
+ Object.defineProperty(arr, "1", {
+ get: function () {
+ throw new RangeError("unhandle exception happened in getter");
+ },
+ configurable: true
+ });
+
+ try {
+ arr.reduceRight(callbackfn, "initialValue");
+ return true;
+ } catch (ex) {
+ return (ex instanceof RangeError) && !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js
new file mode 100644
index 000000000..0cd8b45cf
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ Array.prototype[1] = "11";
+ [0, 1, 2].reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-5.js
new file mode 100644
index 000000000..dcc4cc94a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-5.js
@@ -0,0 +1,68 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-5.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 0) {
+ testResult = (curVal === "0");
+ }
+ }
+
+ var proto = {};
+
+ Object.defineProperty(proto, "0", {
+ get: function () {
+ return 10;
+ },
+ configurable: true
+ });
+
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 2;
+ Object.defineProperty(child, "0", {
+ value: "0",
+ configurable: true
+ });
+ child[1] = "1";
+
+ Array.prototype.reduceRight.call(child, callbackfn, "initialValue");
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+}); \ No newline at end of file
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-6.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-6.js
new file mode 100644
index 000000000..3f09afa89
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-6.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-6",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-6.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own data property that overrides an inherited accessor property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ Object.defineProperty(Array.prototype, "1", {
+ get: function () {
+ return "11";
+ },
+ configurable: true
+ });
+ [0, 1, 2].reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[1];
+ }
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnArrays();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.js
new file mode 100644
index 000000000..722b6fed6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is inherited data property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var proto = { 0: 0, 1: 1, 2: 2 };
+ var Con = function () { };
+ Con.prototype = proto;
+
+ var child = new Con();
+ child.length = 3;
+
+ Array.prototype.reduceRight.call(child, callbackfn, "initialValue");
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js
new file mode 100644
index 000000000..8456fd55d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is inherited data property on an Array",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ try {
+ Array.prototype[0] = 0;
+ Array.prototype[1] = 1;
+ Array.prototype[2] = 2;
+ [, , , ].reduceRight(callbackfn, "initialValue");
+ return testResult;
+
+ } finally {
+ delete Array.prototype[0];
+ delete Array.prototype[1];
+ delete Array.prototype[2];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && ![, 1].hasOwnProperty(0);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-9.js
new file mode 100644
index 000000000..e6a7d633a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-9.js
@@ -0,0 +1,57 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-i-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-9.js",
+
+ description: "Array.prototype.reduceRight - element to be retrieved is own accessor property on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (curVal === 1);
+ }
+ }
+
+ var obj = { 0: 0, 2: 2, length: 3 };
+ Object.defineProperty(obj, "1", {
+ get: function () {
+ return 1;
+ },
+ configurable: true
+ });
+
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return testResult;
+
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight) && fnExists(Object.defineProperty) && fnSupportsArrayIndexGettersOnObjects();
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js
new file mode 100644
index 000000000..8b7021f9e
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-9-c-ii-1",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js",
+
+description: "Array.prototype.reduceRight - callbackfn called with correct parameters (initialvalue not passed)",
+
+test: function testcase() {
+
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ if(idx+1 < obj.length && obj[idx] === curVal && obj[idx+1] === prevVal)
+ return curVal;
+ else
+ return false;
+ }
+
+ var arr = [0,1,true,null,new Object(),"five"];
+ if( arr.reduceRight(callbackfn) === 0)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js
new file mode 100644
index 000000000..101fa3b80
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-10",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js",
+
+ description: "Array.prototype.reduceRight - callbackfn is called with 1 formal parameter",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn(prevVal) {
+ called++;
+ return prevVal;
+ }
+
+ return [11, 12].reduceRight(callbackfn, 100) === 100 && 2 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js
new file mode 100644
index 000000000..05ea6ffeb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-11",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js",
+
+ description: "Array.prototype.reduceRight - callbackfn is called with 2 formal parameter",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal) {
+ if (prevVal === 100) {
+ testResult = true;
+ }
+ return curVal > 10;
+ }
+
+ return [11].reduceRight(callbackfn, 100) === true && testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js
new file mode 100644
index 000000000..2823ed150
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-12",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js",
+
+ description: "Array.prototype.reduceRight - callbackfn is called with 3 formal parameter",
+
+ test: function testcase() {
+
+ var testResult = false;
+ var arr = [11, 12, 13];
+ var initVal = 6.99;
+
+ function callbackfn(prevVal, curVal, idx) {
+ if (idx === 2) {
+ testResult = (prevVal === initVal);
+ }
+ return curVal > 10 && arguments[3][idx] === curVal;
+ }
+
+ return arr.reduceRight(callbackfn, initVal) === true && testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js
new file mode 100644
index 000000000..64b9ed3f6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-13",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js",
+
+ description: "Array.prototype.reduceRight - callbackfn is called with 4 formal parameter",
+
+ test: function testcase() {
+
+ var arr = [11, 12, 13];
+ var initVal = 6.99;
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 2) {
+ testResult = (prevVal === initVal);
+ }
+ return curVal > 10 && obj[idx] === curVal;
+ }
+
+ return arr.reduceRight(callbackfn, initVal) === true && testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js
new file mode 100644
index 000000000..0a5b23aa3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js
@@ -0,0 +1,44 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-14",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js",
+
+ description: "Array.prototype.reduceRight - callbackfn uses arguments",
+
+ test: function testcase() {
+
+ function callbackfn() {
+ return arguments[0] === 100 && arguments[3][arguments[2]] === arguments[1];
+ }
+
+ return [11].reduceRight(callbackfn, 100) === true;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js
new file mode 100644
index 000000000..3ffdfe4a5
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-16",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js",
+
+ description: "Array.prototype.reduceRight - non-indexed properties are not called on an Array-like object",
+
+ test: function testcase() {
+
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (prevVal === 8 || curVal === 8) {
+ testResult = true;
+ }
+ }
+
+ var obj = { 0: 11, 10: 12, non_index_property: 8, length: 20 };
+ Array.prototype.reduceRight.call(obj, callbackfn, "initialValue");
+ return !testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.js
new file mode 100644
index 000000000..00db7aec3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.js
@@ -0,0 +1,55 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-17",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.js",
+
+ description: "Array.prototype.reduceRight - 'accumulator' used for current iteration is the result of previous iteration on an Array",
+
+ test: function testcase() {
+
+ var arr = [11, 12, 13];
+ var testResult = true;
+ var initVal = 6.99;
+ var preResult = initVal;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (prevVal !== preResult) {
+ testResult = false;
+ }
+ preResult = curVal;
+ return curVal;
+ }
+
+ arr.reduceRight(callbackfn, initVal);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js
new file mode 100644
index 000000000..1e15c6226
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js
@@ -0,0 +1,53 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-18",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js",
+
+ description: "Array.prototype.reduceRight - 'accumulator' used for first iteration is the value of 'initialValue' when it is present on an Array",
+
+ test: function testcase() {
+
+ var arr = [11, 12];
+ var testResult = false;
+ var initVal = 6.99;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === initVal);
+ }
+ return curVal;
+ }
+
+ arr.reduceRight(callbackfn, initVal);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js
new file mode 100644
index 000000000..4950a0b13
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js
@@ -0,0 +1,51 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-19",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js",
+
+ description: "Array.prototype.reduceRight - value of 'accumulator' used for first iteration is the value of max index property which is not undefined when 'initialValue' is not present on an Array",
+
+ test: function testcase() {
+
+ var arr = [11, 12, 13];
+ var testResult = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === 1) {
+ testResult = (prevVal === 13);
+ }
+ return curVal;
+ }
+ arr.reduceRight(callbackfn);
+
+ return testResult;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js
new file mode 100644
index 000000000..05550e3c7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest({
+ id: "15.4.4.22-9-c-ii-2",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js",
+
+ description: "Array.prototype.reduceRight - callbackfn called with correct parameters (initialvalue passed)",
+
+ test: function testcase() {
+ var bParCorrect = false;
+ var arr = [0, 1, true, null, new Object(), "five"];
+ var initialValue = 5.5;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx === obj.length - 1 && obj[idx] === curVal && prevVal === initialValue)
+ return curVal;
+ else if (idx + 1 < obj.length && obj[idx] === curVal && obj[idx + 1] === prevVal)
+ return curVal;
+ else
+ return false;
+ }
+ return arr.reduceRight(callbackfn, initialValue) === 0;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js
new file mode 100644
index 000000000..301adf933
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-20",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js",
+
+ description: "Array.prototype.reduceRight - undefined can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return typeof prevVal === "undefined";
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, undefined) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js
new file mode 100644
index 000000000..a664a3f55
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-21",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js",
+
+ description: "Array.prototype.reduceRight - null can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === null;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, null) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js
new file mode 100644
index 000000000..47c29cc90
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-22",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js",
+
+ description: "Array.prototype.reduceRight - boolean primitive can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === false;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, false) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js
new file mode 100644
index 000000000..b2510d024
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-23",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js",
+
+ description: "Array.prototype.reduceRight - number primitive can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === 12;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 12) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js
new file mode 100644
index 000000000..0a2cf036c
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-24",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js",
+
+ description: "Array.prototype.reduceRight - string primitive can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === "hello_";
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, "hello_") === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js
new file mode 100644
index 000000000..6f86edc78
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-25",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js",
+
+ description: "Array.prototype.reduceRight - Function Object can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objFunction = function () { };
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objFunction;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objFunction) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js
new file mode 100644
index 000000000..455865c8b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-26",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js",
+
+ description: "Array.prototype.reduceRight - Array Object can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objArray = [];
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objArray;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objArray) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js
new file mode 100644
index 000000000..557f0ffce
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-27",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js",
+
+ description: "Array.prototype.reduceRight - String Object can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objString = new String();
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objString;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objString) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js
new file mode 100644
index 000000000..47dbf11da
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-28",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js",
+
+ description: "Array.prototype.reduceRight - Boolean Object can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objBoolean = new Boolean();
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objBoolean;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objBoolean) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js
new file mode 100644
index 000000000..758e9b492
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-29",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js",
+
+ description: "Array.prototype.reduceRight - Number Object can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objNumber = new Number();
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objNumber;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objNumber) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js
new file mode 100644
index 000000000..201cfc0b4
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-9-c-ii-3",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js",
+
+description: "Array.prototype.reduceRight - callbackfn takes 4 arguments",
+
+test: function testcase() {
+
+ var bCalled = false;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ bCalled = true;
+ if(prevVal === true && arguments.length === 4)
+ return true;
+ else
+ return false;
+ }
+ var arr = [0,1,2,3,4,5,6,7,8,9];
+ if(arr.reduceRight(callbackfn,true) === true && bCalled === true)
+ return true;
+ },
+
+precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js
new file mode 100644
index 000000000..da5104f4f
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-30",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js",
+
+ description: "Array.prototype.reduceRight - the Math Object can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === Math;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, Math) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js
new file mode 100644
index 000000000..5608b06f6
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-31",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js",
+
+ description: "Array.prototype.reduceRight - Date Object can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objDate = new Date();
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objDate;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objDate) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js
new file mode 100644
index 000000000..3f9401e18
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js
@@ -0,0 +1,49 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-32",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js",
+
+ description: "Array.prototype.reduceRight - RegExp Object can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objRegExp = new RegExp();
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objRegExp;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objRegExp) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js
new file mode 100644
index 000000000..b752d7ef7
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-33",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js",
+
+ description: "Array.prototype.reduceRight - the JSON can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === JSON;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, JSON) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js
new file mode 100644
index 000000000..33c48f78b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-34",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js",
+
+ description: "Array.prototype.reduceRight - Error Object can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var objError = new RangeError();
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === objError;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, objError) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js
new file mode 100644
index 000000000..1b699886d
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-35",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js",
+
+ description: "Array.prototype.reduceRight - the Arguments object can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var arg;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === arg;
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ (function fun() {
+ arg = arguments;
+ }(10, 11, 12, 13));
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, arg) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-37.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-37.js
new file mode 100644
index 000000000..f310119d3
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-37.js
@@ -0,0 +1,48 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-37",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-37.js",
+
+ description: "Array.prototype.reduceRight - the global object can be used as accumulator",
+
+ test: function testcase() {
+
+ var accessed = false;
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ return prevVal === fnGlobalObject();
+ }
+
+ var obj = { 0: 11, length: 1 };
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, fnGlobalObject()) === true && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4-s.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4-s.js
new file mode 100644
index 000000000..fbbd37e63
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4-s.js
@@ -0,0 +1,46 @@
+/// Copyright (c) 2010 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+ES5Harness.registerTest( {
+id: "15.4.4.22-9-c-ii-4-s",
+
+path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4-s.js",
+
+description: "Array.prototype.reduceRight - undefined passed as thisValue to strict callbackfn",
+
+test: function testcase() {
+ var innerThisCorrect = false;
+ function callbackfn(prevVal, curVal, idx, obj)
+ {
+ "use strict";
+ innerThisCorrect = this===undefined;
+ return true;
+ }
+ [0].reduceRight(callbackfn,true);
+ return innerThisCorrect;
+ },
+
+strict:1,
+
+precondition: function prereq() {
+ return fnSupportsStrict() && fnExists(Array.prototype.reduceRight);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js
new file mode 100644
index 000000000..9bf304121
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js
@@ -0,0 +1,54 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-4",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js",
+
+ description: "Array.prototype.reduceRight - k values are passed in acending numeric order",
+
+ test: function testcase() {
+
+ var arr = [0, 1, 2, 3, 4, 5];
+ var lastIdx = arr.length - 1;
+ var accessed = false;
+ var result = true;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (lastIdx !== idx) {
+ result = false;
+ } else {
+ lastIdx--;
+ }
+ }
+ arr.reduceRight(callbackfn, 1);
+ return result && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js
new file mode 100644
index 000000000..f2969363b
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js
@@ -0,0 +1,60 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-5",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js",
+
+ description: "Array.prototype.reduceRight - k values are accessed during each iteration and not prior to starting the loop on an Array",
+
+ test: function testcase() {
+ var arr = [11, 12, 13, 14];
+ var kIndex = [];
+ var result = true;
+ var called = 0;
+
+ //By below way, we could verify that k would be setted as 0, 1, ..., length - 1 in order, and each value will be setted one time.
+ function callbackfn(preVal, curVal, idx, o) {
+ //Each position should be visited one time, which means k is accessed one time during iterations.
+ called++;
+ if (typeof kIndex[idx] === "undefined") {
+ //when current position is visited, its next index should has been visited.
+ if (idx !== arr.length - 1 && typeof kIndex[idx + 1] === "undefined") {
+ result = false;
+ }
+ kIndex[idx] = 1;
+ } else {
+ result = false;
+ }
+ }
+
+ arr.reduceRight(callbackfn, 1);
+ return result && called === 4;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js
new file mode 100644
index 000000000..26055d322
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js
@@ -0,0 +1,58 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-7",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js",
+
+ description: "Array.prototype.reduceRight - unhandled exceptions happened in callbackfn terminate iteration",
+
+ test: function testcase() {
+
+ var accessed = false;
+
+ function callbackfn(prevVal, curVal, idx, obj) {
+ if (idx < 10) {
+ accessed = true;
+ }
+ if (idx === 10) {
+ throw new Error("Exception occurred in callbackfn");
+ }
+ }
+
+ var obj = { 0: 11, 4: 10, 10: 8, length: 20 };
+
+ try {
+ Array.prototype.reduceRight.call(obj, callbackfn, 1);
+ return false;
+ } catch (ex) {
+ return !accessed;
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js
new file mode 100644
index 000000000..6310e612a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js
@@ -0,0 +1,50 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-8",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js",
+
+ description: "Array.prototype.reduceRight - element changed by callbackfn on previous iterations is observed",
+
+ test: function testcase() {
+
+ var accessed = false;
+ var obj = { 0: 11, 1: 12, length: 2 };
+ function callbackfn(prevVal, curVal, idx, obj) {
+ accessed = true;
+ if (idx === 1) {
+ obj[idx - 1] = 8;
+ }
+ return curVal > 10;
+ }
+
+ return Array.prototype.reduceRight.call(obj, callbackfn, 1) === false && accessed;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js
new file mode 100644
index 000000000..581d7722a
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js
@@ -0,0 +1,47 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
+ES5Harness.registerTest({
+
+ id: "15.4.4.22-9-c-ii-9",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js",
+
+ description: "Array.prototype.reduceRight - callbackfn is called with 0 formal parameter",
+
+ test: function testcase() {
+
+ var called = 0;
+
+ function callbackfn() {
+ called++;
+ return true;
+ }
+
+ return [11, 12].reduceRight(callbackfn, 11) === true && 2 === called;
+ },
+
+ precondition: function prereq() {
+ return fnExists(Array.prototype.reduceRight);
+ }
+
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-b-iii-3-b-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-b-iii-3-b-1.js
new file mode 100644
index 000000000..da782b7c2
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-b-iii-3-b-1.js
@@ -0,0 +1,67 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ES5Harness.registerTest({
+ id: "15.4.4.4-5-b-iii-3-b-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-b-iii-3-b-1.js",
+
+ description: "Array.prototype.concat will concat an Array when index property (read-only) exists in Array.prototype (Step 5.b.iii.3.b)",
+
+ test: function testcase() {
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ value: 100,
+ writable: false,
+ configurable: true
+ });
+
+ var oldArr = [101];
+
+ var newArr = Array.prototype.concat.call(oldArr);
+
+ var verifyValue = false;
+ verifyValue = newArr[0] === 101;
+
+ var verifyEnumerable = false;
+ for (var p in newArr) {
+ if (p === "0" && newArr.hasOwnProperty("0")) {
+ verifyEnumerable = true;
+ }
+ }
+
+ var verifyWritable = false;
+ newArr[0] = 12;
+ verifyWritable = newArr[0] === 12;
+
+ var verifyConfigurable = false;
+ delete newArr[0];
+ verifyConfigurable = newArr.hasOwnProperty("0");
+
+ return verifyValue && !verifyConfigurable && verifyEnumerable && verifyWritable;
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Object.defineProperty);
+ }
+});
diff --git a/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-c-i-1.js b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-c-i-1.js
new file mode 100644
index 000000000..b7e05e6bb
--- /dev/null
+++ b/external/contributions/Microsoft/ietestcenter_build_2011/TestCases/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-c-i-1.js
@@ -0,0 +1,71 @@
+/// Copyright (c) 2009 Microsoft Corporation
+///
+/// Redistribution and use in source and binary forms, with or without modification, are permitted provided
+/// that the following conditions are met:
+/// * Redistributions of source code must retain the above copyright notice, this list of conditions and
+/// the following disclaimer.
+/// * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
+/// the following disclaimer in the documentation and/or other materials provided with the distribution.
+/// * Neither the name of Microsoft nor the names of its contributors may be used to
+/// endorse or promote products derived from this software without specific prior written permission.
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+/// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+/// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+/// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+/// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+/// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+/// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ES5Harness.registerTest({
+ id: "15.4.4.4-5-c-i-1",
+
+ path: "TestCases/chapter15/15.4/15.4.4/15.4.4.4/15.4.4.4-5-c-i-1.js",
+
+ description: "Array.prototype.concat will concat an Array when index property (read-only) exists in Array.prototype (Step 5.c.i)",
+
+ test: function testcase() {
+ try {
+ Object.defineProperty(Array.prototype, "0", {
+ value: 100,
+ writable: false,
+ configurable: true
+ });
+
+ var newArr = Array.prototype.concat.call(101);
+
+ var hasProperty = newArr.hasOwnProperty("0");
+
+ var instanceOfVerify = typeof newArr[0]==="number";
+
+ var verifyValue = false;
+ verifyValue = newArr[0] === 101;
+
+ var verifyEnumerable = false;
+ for (var p in newArr) {
+ if (p === "0" && newArr.hasOwnProperty("0")) {
+ verifyEnumerable = true;
+ }
+ }
+
+ var verifyWritable = false;
+ newArr[0] = 12;
+ verifyWritable = newArr[0] === 12;
+
+ var verifyConfigurable = false;
+ delete newArr[0];
+ verifyConfigurable = newArr.hasOwnProperty("0");
+
+ return hasProperty && instanceOfVerify && verifyValue && !verifyConfigurable && verifyEnumerable && verifyWritable;
+
+
+ } finally {
+ delete Array.prototype[0];
+ }
+ },
+
+ precondition: function prereq() {
+ return fnExists(Object.defineProperty);
+ }
+});