aboutsummaryrefslogtreecommitdiffstats
path: root/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22
diff options
context:
space:
mode:
Diffstat (limited to 'external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22')
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js36
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js39
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js44
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js66
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js64
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js53
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js67
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js55
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js63
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js73
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js68
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js73
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js69
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js79
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js51
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js60
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js56
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js45
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js57
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js52
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js58
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js65
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js42
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js41
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js48
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js54
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js61
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js43
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js47
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js46
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js50
-rw-r--r--external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js47
180 files changed, 9352 insertions, 0 deletions
diff --git a/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-0-2.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-10.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-11.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-12.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-13.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-14.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-15.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-2.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-3.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-4.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-5.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-6.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-7.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-8.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-1-9.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-2.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-3.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-4.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-5.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-6.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-7.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-10-8.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-10.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-11.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-12.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-13.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-14.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-17.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-18.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-19.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-2.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-3.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-4.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-5.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-6.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-7.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-8.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-2-9.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-10.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-11.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-12.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-13.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-14.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-15.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-16.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-17.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-18.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-19.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-2.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-20.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-21.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-22.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-23.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-24.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-25.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-28.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-29.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-3.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-4.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-5.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-6.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-7.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-8.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-3-9.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-10.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-11.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-12.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-2.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-3.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-4.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-5.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-6.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-7.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-8.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-4-9.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-10.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-11.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-12.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-13.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-2.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-3.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-4.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-5.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-6.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-7.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-8.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-5-9.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-10.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-11.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-2.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-3.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-4.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-5.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-6.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-7.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-8.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-7-9.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-b-ii-2.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-2.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-3.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-4.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-5.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-6.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-7.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-8-c-8.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-2.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-3.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-4.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-5.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-6.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-2.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-b-3.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-2.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-25.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-26.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-27.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-28.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-29.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-3.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-4.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-7.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-i-8.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-1.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-10.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-11.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-12.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-13.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-14.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-16.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-17.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-18.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-19.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-2.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-20.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-21.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-22.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-23.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-24.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-25.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-26.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-27.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-28.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-29.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-3.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-30.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-31.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-32.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-33.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-34.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-35.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-4.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-5.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-7.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-8.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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_ie9_rc1_refresh1/chapter15/15.4/15.4.4/15.4.4.22/15.4.4.22-9-c-ii-9.js b/external/contributions/Microsoft/ietestcenter_ie9_rc1_refresh1/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_ie9_rc1_refresh1/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);
+ }
+
+});